как выглядит твиттер / verify_credentials? - PullRequest
19 голосов
/ 17 июня 2011

Итак, мне просто нужно получить основную информацию пользователя (/ verify_credentials (твиттер), / me (facebook), поэтому я сейчас пытаюсь свернуть свой собственный код

получил его на Facebook со второй попытки, так как все, что мне нужно, это запрос к graph.facebook.com/me + access_token

но сейчас пытаться сделать это с помощью твиттера было невероятно больно, я просто не могу понять это по документам, так что, пожалуйста, как выглядит запрос к твиттеру api / verify_credentials?

Какие параметры? твиттер API, ты отстой?

1 Ответ

28 голосов
/ 17 июня 2011

Facebook использует oAuth 2.0, который гораздо проще реализовать, чем oAuth 1.0 (который использует твиттер).

Пример запроса к API verify_credentials может выглядеть следующим образом:

https://api.twitter.com/1/account/verify_credentials.json?oauth_consumer_key=XXX&oauth_nonce=XXX&oauth_signature_method=HMAC-SHA1&oauth_token=XXX&oauth_timestamp=123456789&oauth_version=1.0&oauth_signature=YYY

  • oauth_consumer_key не требует пояснений
  • oauth_nonce может быть в значительной степени случайной строкой символов
  • oauth_signature_method всегда HMAC-SHA1
  • oauth_token - ваш доступтокен
  • oauth_timestamp - текущая метка времени UNIX (в UTC)
  • oauth_version всегда 1,0
  • oauth_signature - это ваша сгенерированная подпись (которую твиттер проверит, воспроизведя)

Вы генерируете значение параметра oauth_signature, создавая базовую строку подписи, которая состоит из следующих частей.

  • HTTP-метод в верхнем регистре (в данном случае GET)
  • амперсанд &
  • базовый URI в кодировке URL (все от https до verify_credentials.json включительно)
  • амперсанд &
  • все параметры запроса в алфавитном порядке, URL-адрес закодирован.(хотя oauth_signature НЕ следует включать в это)

Псевдокод в разделе Подписание запросов в документации Twitters описывает процесс подписи элегантно:

httpMethod + "&" +
    url_encode(  base_uri ) + "&" +
    sorted_query_params.each  { | k, v |
        url_encode ( k ) + "%3D" +
        url_encode ( v )
    }.join("%26")

И затем вы подписываете полученную базовую строку, используя секрет потребителя и секрет токена доступа.Вот и все, что нужно: :)

Но прежде чем отправлять какие-либо запросы к API, вам, конечно же, необходимо получить токен доступа.Как только вы поймете поток oAuth 1.0 и процесс подписания.Ты будешь дома.Документация Твиттера делает большую работу по объяснению процесса, но это довольно сложная задача.Хотя это того стоит.

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