我在用戶通過oauth過程後,將來自Twitter的oauth信息存儲在Flash Cookie中。 Twitter表示,如果Twitter或用戶撤銷該應用的訪問權限,該令牌應該只會過期。在Twitter上驗證OAuth標記
是否有一個電話,我可以讓Twitter來驗證我的存儲的令牌還沒有被撤銷?
我在用戶通過oauth過程後,將來自Twitter的oauth信息存儲在Flash Cookie中。 Twitter表示,如果Twitter或用戶撤銷該應用的訪問權限,該令牌應該只會過期。在Twitter上驗證OAuth標記
是否有一個電話,我可以讓Twitter來驗證我的存儲的令牌還沒有被撤銷?
如果訪問令牌到期,所有需要認證的API方法都會失敗。但是具體的方法來驗證用戶是誰,並且訪問令牌仍然有效是GET account/verify_credentials
這個問題可能是舊的,但是這一次是針對Google員工(如我)。
下面是一個使用吊牀嘰嘰喳喳電話:
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解決方案,這是我在付出,儘管相當的第一次嘗試遲到的問題。
我使用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;
不錯,謝謝。不知道爲什麼我找不到那個。 – shanethehat 2011-05-28 13:26:05
BTW-現在是https://dev.twitter.com/docs/api/1.1/get/account/verify_credentials,API的版本爲1.1 – 2013-03-19 20:43:36