我正在使用新的twitter @anywhere api使用弹出窗口登录客户端。 api文档在这里 https://dev.twitter.com/docs/anywhere/welcome#auth-events
我已经创建了一个非常简单的api示例,但是在弹出窗口中点击“connect”后,twitter就会说“技术上出现问题”,如此截图所示 http://cl.ly/0A321R1Z2W1o3v0P0t0z
以下是我执行此操作的设置(请注意我已在Twitter上创建了我的应用程序)
var api = "http://platform.twitter.com/anywhere.js?id={MY_API_KEY}&v=1";
$.getScript(api,function() {
twttr.anywhere(function (tw) {
console.log("tw",tw);
// bind auth compelte event
tw.bind("authComplete", function (e, user) {
console.log("tw auth complete",e,user);
});
// calling sign in triggeers the above event
tw.signIn();
});
});
所以它打开弹出窗口,让我登录twitter,然后当我点击连接时,我从twitter上得到了那个奇怪的错误。
任何可能出错的想法?
谢谢!
更新 - 我发现此页面的人遇到了类似问题,但他们提供的解决方案没有改变任何内容。
https://dev.twitter.com/discussions/1286
注意我正在使用的域http://changeup.dev是一个本地域可能很重要。我已经在我的主机文件中设置了它。
答案 0 :(得分:2)
所以,我想出来了。您需要为您的应用程序设置一个回调URL(在开发者页面上),即使它说您没有。回调网址也需要与您的授权域匹配。
然后,在你的应用程序中,回调调用的URL,NEEDS包含twitter api。那么,只有这样窗口会自动关闭并执行authComplete回调。
我是在我从
登录的同一页上完成的if(location.hash && location.hash.indexOf("oauth_access_token") != -1) {