如何将 twitter Oauth 实施到我的 Google chrome 扩展程序中

chi*_*eye 6 twitter oauth google-chrome-extension google-chrome-devtools

我想出了如何获取登录按钮并通过 php 代码重定向。但是,Chrome Dev 只允许客户端代码。如何使用我的 Chrome 应用程序的客户端代码通过 twitter 登录?

有没有办法为 Chrome 应用程序运行 php 代码?

Gid*_*zer 1

为此,您可以使用Chrome Identity API 。查看非 Google 帐户身份验证,了解有关使用 API 函数发出请求的简单说明launchWebAuthFlow

以前,有用于实现 OAuth 流程的客户端库,如此处所述oauth2-extensions,但幸运的是,这不再需要了

更新

我一直在尝试找到一个适用于 Twitter 的示例,但还没有完全实现。Twitter 似乎没有与预期的 OAuth2 URL 匹配的 API 端点。我认为就 Twitter 而言,您可能必须使用 OAuth 1.0a,毕竟这需要一个库。我找到了一个叫CodeBird的。不过,我会尝试进一步调查。

使用 Chrome Identity API 授权 Instagram 的示例

您需要使用 向您的提供商注册客户端https://abcdefghijklmnopqrstuvwxyzabcdef.chromiumapp.org/intagram_cb,其中“abcdefghijklmnopqrstuvwxyzabcdef”替换为您的扩展 ID,并且intagram_cb是路径的名称,以便能够区分您希望在扩展中进行身份验证的其他提供商。如果只有一个,那么可以省略它。

将提供者添加到文件中的权限属性中manifest.json

"permissions": [
   "*://*.instagram.com/*"
]
Run Code Online (Sandbox Code Playgroud)

获取访问令牌。client_id您从提供商帐户获取令牌:

var redirect_uri = chrome.identity.getRedirectURL("intagram_cb");
var client_id = "123456789012345";
var auth_url = "https://instagram.com/oauth/authorize/?" +
    "client_id=" + client_id + "&" +
    "response_type=token&" +
    "redirect_uri=" + encodeURIComponent(redirect_uri);

chrome.identity.launchWebAuthFlow({'url':auth_url, 'interactive': true},
     function(redirect_url) {
         // extract the token from this url and use it for future requests
         var accessToken = redirect_url.substring(redirect_url.indexOf("=") + 1);
     }
});
Run Code Online (Sandbox Code Playgroud)