我正在使用Twitter4j并尝试获取并将用户的Twitter访问令牌存储到数据库以供稍后发送。我想完全用jQuery和ajax完成它,默默地。
我有一个cfc,具有必要的基本功能。例如以下jquery调用cfc函数生成requestURL并弹出一个Twitter auth窗口。
$(".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完成吗?
我可能要求的太多了,但是如果有人做过类似的事情,我真的很感激能朝着正确的方向发展。
答案 0 :(得分:0)
看看here。
此网站的工作方式是使用getOAuthRequestToken()
生成RequestToken,然后在RequestToken上调用getToken()
和getSecretToken()
,并将这两个变量存储在SESSION
范围内。然后使用URL
生成授权getAuthorizationURL()
。
用户批准OAuth请求后,您需要生成访问令牌并存储这两种方法的结果:AccessToken.getToken()
和AccessToken.getTokenSecret()
。
因此,为了回答您的问题,我认为它可行的方式是在生成并返回授权网址之前存储您的oAuthRequestToken
和oAuthRequestTokenSecret
是SESSION
范围。
当您使用Twitter注册应用程序时,您指定了一个回调URL。这是用户在Twitter上自动化您的应用程序后将被重定向的页面。
调用回调URL时,只需从SESSION
sope中存储的请求令牌创建一个访问令牌。
<cfset AccessToken = Twitter.getOAuthAccessToken(Session.oAuthRequestToken,Session.oAuthRequestTokenSecret) />
并将Token和TokenSecret存储在数据库中:
<cfset Token = AccessToken.getToken() />
<cfset TokenSecret = AccessToken.getTokenSecret() />
希望这有帮助