Подтвердить что ты не робот

Как выглядит twitter/verify_credentials?

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

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

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

каковы параметры? twitter api, y u suck?

4b9b3361

Ответ 1

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 - это ваша сгенерированная подпись (которую twitter проверит путем воспроизведения)

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

  • Метод HTTP в верхнем регистре (в данном случае GET)
  • амперсанд &
  • URL-кодированный базовый URI (все от 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 и процесс подписания. Ты будешь дома. Документация Twitter отлично справляется с объяснением процесса, но это довольно немного, чтобы обернуть голову. Стоит это хотя.