Как сгенерировать подпись OAuth с помощью php для Twitter API? - PullRequest
1 голос
/ 09 августа 2010

На самом деле это не вопрос php, это больше об OAuth. Я пытаюсь понять, как создать ключ знака OAuth. Я прочитал Документацию в Твиттере и попробовал пример, но я не мог понять, как использовать SHA1.

Должен ли я использовать SHA1 в базовой строке с секретным ключом или без него? Я перепробовал много вариантов, но ключ знака отличался от того, который был в примере.

Это мой код:

function request_token(){

    $headers = 'POST&';
    $headers .= urlencode('https://api.twitter.com/oauth/request_token');
    $headers .= '%26oauth_callback%3d'.urlencode($this->oauth_callback);
    $headers .= '%26oauth_consumer_key%3d'.urlencode($this->oauth_consumer_key);
    $headers .= '%26oauth_nonce%3d'.urlencode($this->oauth_nonce);
    $headers .= '%26oauth_signature_method%3d'.urlencode($this->oauth_signature_method);
    $headers .= '%26oauth_timestamp%3d'.urlencode($this->oauth_timestamp);

    $request_token_url = 'http://api.twitter.com/oauth/request_token?';
    $sha = sha1($headers);
    $url = $request_token_url.$sha.$this->consumer_secret.'&';

    $ch = curl_init();
    curl_setopt($ch,CURLOPT_URL,$url);
    curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,2);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch,CURLOPT_HTTPHEADER,$headers);
    curl_setopt($ch, CURLOPT_POST      ,1);
    curl_setopt($ch,CURLOPT_PUT,true); 
    curl_setopt($ch, CURLOPT_HEADER, 1);

    $result = curl_exec($ch);
    curl_close($ch);
    return $result;

}

Спасибо

Ответы [ 3 ]

4 голосов
/ 09 августа 2010

Я бы порекомендовал использовать Открытый исходный код Авраама OAuth solutio n вместо того, чтобы пытаться написать свое собственное.

(GitHub)

1 голос
/ 20 сентября 2010
0 голосов
/ 29 июня 2011

если вы делаете запросы самостоятельно, вы можете проверить подписи, используя http://www.eeqqoo.com/index.php?option=com_content&view=article&id=62:oauth-signature-validation-tool&catid=35:php&Itemid=54, это мне очень помогло

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...