2014-02-10 6 views
0

Im пытается использовать и, в частности, метод getRequestToken(). Проблема, которую я обнаружил, заключается в том, что я не могу добавить пользовательские параметры к моему запросу. Я хотел бы добавить параметр «scope», но я не могу найти способ сделать это. Если я пытаюсь добавить параметр в URL, кажется, как и все другие параметры не удается так:OAuth getRequestToken с пользовательскими параметрами

$oauth->getRequestToken("http://www.api.com/oauth/request_token?scope=email", "http://www.mypage.com/callback.php"); 

Это полный пример вызова рабочего API, но без необходимого пользовательского параметра:

$oauth = new \OAuth("consumer_key", "consumer_secret"); 
$oauth->setNonce(sha1(\Str::Random(10).time())); 
$oauth->setTimestamp(time()); 

try 
{ 
    $oauth->getRequestToken("http://www.api.com/oauth/request_token", "http://www.mypage.com/callback.php"); 
} 
catch (\OAuthException $e) 
{ 
    exit($oauth->getLastResponse()); 
} 

Итак: Как добавить пользовательские параметры в вызов OAuth с помощью библиотеки PHP OAuth?

+0

http://www.api.com/oauth/request_token?scope=email <- похоже, вы его добавили. – DaImTo

+0

Да, но в этом случае запрос не выполняется. Кажется, что все остальные параметры отсутствуют, если я добавлю URL-адрес. Я получаю «oauth_problem = parameter_absent» в обратном вызове и список всех остальных параметров, которые отсутствуют. – musse1

+1

Я бы посмотрел doucmentaion для API, который вы пытаетесь подключить, чтобы посмотреть, что им требуется для отправки парм. – DaImTo

ответ

0

Я выяснил, чего не хватает, если кто-то другой столкнулся с этой проблемой. Решение представляет собой комбинацию методов «выборка» и «setAuthType». Метод fetch() позволяет настраивать данные в качестве второго параметра. Таким образом, я мог бы добавить свой параметр «Scope», как так:

$oauth->fetch("http://www.api.com/oauth/request_token", array("scope" => "email"), OAUTH_HTTP_METHOD_GET); 

В сочетании с методом setAuthType() сделал это возможным. setAuthType() требуется константа с именем OAUTH_AUTH_TYPE_ *. Для этого я добавил константу OAUTH_AUTH_TYPE_URI, которая добавляет параметры OAuth в URI запроса.

Смежные вопросы