Я пытаюсь настроить использование API-интерфейса Twitter (только для приложений) и испытываю трудности с получением токена на предъявителя, чтобы начать звонить. В частности, я получаю HTTP 403
{
"code": 99,
"message": "Unable to verify your credentials",
"label": "authenticity_token_error"
}
У меня настроены среда приложения и разработки и мои учетные данные (ключ API и секретный ключ API).
Я использую Talend API Tester для всего этого.
Я просто не вижу проблемы. Вот пример запроса из документации Twitter и ниже, мой запрос, прямо из браузера.
Пример Twitter:
POST /oauth2/token HTTP/1.1
Host: api.twitter.com
User-Agent: My Twitter App v1.0.23
Authorization: Basic eHZ6MWV2RlM0d0VFUFRHRUZQSEJvZzpMOHFxOVBaeVJnNmllS0dFS2hab2xHQzB2SldMdzhpRUo4OERSZHlPZw==
Content-Type: application/x-www-form-urlencoded;charset=UTF-8
Content-Length: 29
Accept-Encoding: gzip
grant_type=client_credentials
Мой фактический запрос:
POST /oauth2/token HTTP/1.1
Authorization: Basic ektCUTl5Q0tWRERVUVFwUDJXYzljWlpyYTowM1ZIb -- not really a key -- xhaHByMmlqWld3RkIxa1gxaXZ6cQ==
User-Agent: My App
Accept-Encoding: gzip
Content-Length: 29
Content-Type: application/x-www-form-urlencoded;charset=UTF-8
Host: api.twitter.com
grant_type=client_credentials
За пределами заголовков Authorization и User-Agent они идентичны.
Поскольку Talend API Tester берет имя пользователя и пароль и выполняет кодировку Base 64 для заголовка Authorization, я даже взял ключ API сложил его вместе с секретным ключом API, разделив их двоеточием (в соответствии с документацией Twitter), вручную выполнил кодирование Base 64 и получил то же значение, которое отправляется в запросе.
Я прочитал что если вы делаете слишком много запросов, вы можете получить 403, в основном рассчитывая время ожидания, но вышеупомянутый запрос был просто сделан с помощью fre sh ключей и через 24 часа после моей последней попытки. Если у меня истекло время ожидания, я не уверен, как долго это будет продолжаться.