Chrome扩展程序的Twitter OAuth回调网址

时间:2014-04-16 17:37:36

标签: google-chrome twitter oauth

我正在尝试开发一个Chrome扩展程序,人们可以使用他们的Twitter帐户登录(使用OAuth 1.0A)。

到目前为止,我还没有在Twitter应用程序设置中提供回调URL,因此返回用户输入的PIN以完成授权过程。但我不想在扩展程序中实施最终的PIN验证步骤。

相反,我希望一旦用户被重定向到Twitter并授权应用程序访问他的帐户,他就会自动登录到扩展程序并可以使用它来发布推文。

我知道我应该定义一个回调网址,但我不知道该使用什么。我已经苦苦挣扎了几天,在此期间我尝试了多种方法(例如chrome:// extensions / extension_id /但它不被Twitter接受)。我没有找到解决方案。

关于什么应该是回调网址的任何想法?什么应该包含该URL指向的文件?

1 个答案:

答案 0 :(得分:0)

我知道这是非常古老的,但我遇到了同样的问题,并最终想出了如何做到这一点,所以希望这有助于其他找到这个的人。

在您的Twitter应用配置中,您必须向域添加回调URL。然后,在Chrome扩展程序中,您必须拥有一个在同一个域上注入的内容脚本。内容脚本将具有一些逻辑,用于解析身份验证令牌的查询字符串,并将其作为消息发送到后台脚本。然后,在后台脚本中,您可以使用这些令牌获取实际的oauth令牌,然后将其保存到本地存储或chrome.storage。

这是一个简短的例子:

    在您的manifest.json中
  1. ,请确保您的内容脚本与您在Twitter应用设置回调网址中放置的域相同:

    "content_scripts": [{
        "matches": ["https://andyjiang.com/*"],
        "js": ["js/session.js"]
    }]
    
  2. 然后,在您的js/session.js文件中,有这样的逻辑:

    chrome.runtime.sendMessage({type: 'auth', session: 
    window.location.search.substr(1)}, function(response) {
        window.open('', '_self', '');
        window.close();
    });
    
  3. 在后台脚本中,有一些逻辑可以侦听消息,获取令牌,并使用Twitter的API进行oauth进程的第三站,最终获得oauth令牌和oauth令牌秘密,然后您可以将其保存在localStorage或chrome.storage中。

  4. 希望有所帮助。以下是示例代码,如果您想要使用它。

    https://github.com/lambtron/chrome-extension-twitter-oauth-example