0

我正在使用 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 完成吗?

我可能要求太多了,但如果有人做过类似的事情,我真的很感激朝着正确的方向推进。

4

1 回答 1

0

看看这里

该站点的方法是使用 生成 RequestToken getOAuthRequestToken(),然后在 RequestToken 上调用getToken()getSecretToken()并将这两个变量存储在SESSION范围内。URL然后使用生成授权getAuthorizationURL()

用户批准 OAuth 请求后,您需要生成访问令牌并存储这两种方法的结果:AccessToken.getToken()AccessToken.getTokenSecret().

因此,要回答您的问题,我认为它会起作用的方式是在生成和返回授权 URL 之前存储您的oAuthRequestTokenandoAuthRequestTokenSecret是范围。SESSION

当您向 Twitter 注册您的应用程序时,您需要指定一个回调 URL。这是用户在 Twitter 上自动化您的应用程序后将重定向用户的页面。

SESSION调用回调 URL 时,只需从sope 中存储的请求令牌创建一个访问令牌。

<cfset AccessToken = Twitter.getOAuthAccessToken(Session.oAuthRequestToken,Session.oAuthRequestTokenSecret) />

并将 Token 和 TokenSecret 存储在数据库中:

<cfset Token = AccessToken.getToken() />
<cfset TokenSecret = AccessToken.getTokenSecret() />

希望这可以帮助

于 2011-08-20T14:11:59.813 回答