我正在使用Twitter4j,并试图获取用户的Twitter访问令牌并将其存储到数据库中,以便以后发布Twitter。我想完全用jQuery和ajax来完成它。
我有一个具有必要基本功能的cfc。例如,下面的jquery调用cfc函数,该函数生成requestURL并弹出一个Twitter验证窗口。
$(".cbLinkTwitter").live("click", function(e) {
$.getJSON(cfcRoot + "/twitter.cfc?method=getRequestURL&returnformat=json, {"user_id":user_id}, function(res,code) {
openWindow(res);
});
e.preventDefault();
});
这一切都很好。然而,在用户授予授权之后,我如何使用jQuery捕获返回的令牌。它需要返回到指定的回调URL,但我希望它在可能的情况下默默地返回数据。这可以用iframe来完成吗?
我可能要求太多了,但如果有人做过类似的事情,我真的很感激你把我推向正确的方向。
看看这里。
这个网站的方式是通过使用getOAuthRequestToken()
生成一个RequestToken,然后在RequestToken上调用getToken()
和getSecretToken()
,并将这2个变量存储在SESSION
作用域中。然后使用getAuthorizationURL()
生成授权URL
。
在用户批准了OAuth请求后,您需要生成一个访问令牌并存储AccessToken.getToken()
和AccessToken.getTokenSecret()
这两个方法的结果。
所以要回答你的问题,我假设它会工作的方式,将存储您的oAuthRequestToken
和oAuthRequestTokenSecret
是SESSION
范围之前生成和返回授权URL。
当你在Twitter上注册你的应用程序时,你指定一个回调URL。这是用户在Twitter上授权你的应用程序后,用户将被重定向的页面。
当回调URL被调用时,只需从存储在SESSION
目录中的请求令牌创建一个访问令牌。
<cfset AccessToken = Twitter.getOAuthAccessToken(Session.oAuthRequestToken,Session.oAuthRequestTokenSecret) />
并将Token和TokenSecret存储在数据库中:
<cfset Token = AccessToken.getToken() />
<cfset TokenSecret = AccessToken.getTokenSecret() />
希望能有所帮助