Ответ 1
Все API-методы, требующие проверки подлинности, терпят неудачу, если истекает токен доступа. Однако конкретный метод проверки того, кто является пользователем и что токен доступа по-прежнему действителен, GET account/verify_credentials
Я храню информацию oauth из Twitter в Flash Cookie после того, как пользователь идет, несмотря на процесс oauth. Twitter говорит, что этот токен должен истекать только в случае, если Twitter или пользователь отменит доступ к приложению.
Есть ли вызов, который я могу сделать для Twitter, чтобы проверить, что мой сохраненный токен не был отозван?
Все API-методы, требующие проверки подлинности, терпят неудачу, если истекает токен доступа. Однако конкретный метод проверки того, кто является пользователем и что токен доступа по-прежнему действителен, GET account/verify_credentials
Этот вопрос может быть старым, но этот для гуглеров (как и я).
Вот вызов твиттера с использованием гамака:
RestClient rc = new RestClient {Method = WebMethod.Get};
RestRequest rr = new RestRequest();
rr.Path = "https://api.twitter.com/1/account/verify_credentials.json";
rc.Credentials = new OAuthCredentials
{
ConsumerKey = /* put your key here */,
ConsumerSecret = /* put your secret here */,
Token = /* user access token */,
TokenSecret = /* user access secret */,
Type = OAuthType.AccessToken
};
rc.BeginRequest(rr, IsTokenValid);
Вот ответ:
public void IsTokenValid(RestRequest request, RestResponse response, object userState)
{
if(response.StatusCode == HttpStatusCode.OK)
{
var user = userState;
Helper.SaveSetting(Constants.TwitterAccess, user);
}
else
{
Dispatcher.BeginInvoke(() => MessageBox.Show("This application is no longer authenticated "))
}
}
Я всегда беру решения от SO, это моя первая попытка отдать, хотя и довольно поздно на вопрос.
При отладке вручную:
curl \
--insecure https://api.twitter.com/1/account/verify_credentials.json?oauth_access_token=YOUR_TOKEN
Я использую TwitterOAuth API и вот код, основанный на принятом ответе.
$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, $twitter_oauth_token, $twitter_oauth_secret);
$content = $connection->get("account/verify_credentials");
if($connection->getLastHttpCode() == 200):
// Connection works fine.
else:
// Not working
endif;