У меня возникает ошибка при попытке использовать Twitter oauth2/invalidate_token. Ошибка: {«errors»: [{«code»: 99, «message»: «Не удалось проверить ваши учетные данные», «label»: «authenticity_token_error»}]}Twitter oauth2/invalidate_token Ошибка «Не удалось проверить ваши учетные данные», «authenticity_token_error»
Я использую TwitterAPIExchange. php wrapper, который вы можете найти here и here. Структура - Codeigniter 3.0, и этот код находится в методе, который вызывается AJAX (но я не думаю, что это имеет значение).
Вот мой код:
$settings = array(
'oauth_access_token' => $this->session->userdata('oauth_token'),
'oauth_access_token_secret' => $this->session->userdata('oauth_token_secret'),
'consumer_key' => TWITTER_CONSUMER_KEY,
'consumer_secret' => TWITTER_CONSUMER_SECRET);
$twitter = new TwitterAPIExchange($settings);
$url = 'https://api.twitter.com/oauth2/invalidate_token';
$requestMethod = 'POST';
$postfields = array('access_token' => $this->session->userdata('oauth_token'));
$response_str = $twitter->buildOauth($url, $requestMethod)
->setPostfields($postfields)
->performRequest();
$response_arr = [];
parse_str($response_str, $response_arr);
Содержание $ response_str это ошибка. Содержимое oauth_token и oauth_token_secret - это не приложение пользователя.
В качестве теста, когда я заменяю вызов oauth2/invalidate_token с помощью GET для статусов/user_timeline.json, он работает нормально. Поэтому кажется, что настройки правильные. Если я заменить соответствующие строки выше, оставьте настройки в покое, это работает отлично:
$url = 'https://api.twitter.com/1.1/statuses/user_timeline.json';
$getfield = '?user_id=' . $uid;
$requestMethod = 'GET';
$twitter = new TwitterAPIExchange($settings);
echo $twitter->setGetfield($getfield)
->buildOauth($url, $requestMethod)
->performRequest();
This page in the docs переговоры об этой ошибке, в частности, но в контексте этого времени запроса приложения только в результате ошибки, но это не запрос приложения, и перечисленные причины, похоже, не применяются.
Любые идеи?
Знаки-носители и однотонные токены различны. И как указано [здесь] (https://dev.twitter.com/oauth/reference/post/oauth2/invalidate/token), конечная точка POST oauth2/invalidate_token' используется для отмены токена-носителя. Ошибки, относящиеся к этой конечной точке, документированы [здесь] (https://dev.twitter.com/oauth/application-only) в разделе ** Общие случаи ошибок ** внизу. –