我在打包应用程序中使用 chrome.identity 来使用 Facebook 获取用户令牌。我调用 chrome.identity.launchWebAuthFlow,我需要获取访问令牌,将其发送到服务器,然后使用访问令牌来验证用户。
与 Google+ 配合得很好。但由于某种原因,它不适用于 Facebook。出于某种原因,Facebook 的 OAuth 似乎很特别。我已将 extensionid.chromiumapp.org 添加到 API 中的重定向 URL 列表中。添加
"https://extensionid.chromiumapp.org/*",
"https://facebook.com/*",
"https://www.facebook.com/dialog/",
"https://graph.facebook.com/*"
到清单.json。但一切都没有改变。
在调用 chrome.identity.launchWebAuthFlow 时,我使用这样的 URL
"https://www.facebook.com/dialog/oauth/access_token?" +
"client_id=myclientid&client_secret=myclientsecret&" +
"response_type=token&grant_type=client_credentials"
当我尝试调用它时,收到以下错误消息:
«launchWebAuthFlow completed Object {message: "Authorization page could not be loaded."} »
当我使用像这样的 URL 时
«"https://www.facebook.com/dialog/oauth?client_id=myclientid&redirect_uri=https://myextensionid.chromiumapp.org/facebook.com=token&scope=user"»
我收到下一个错误:
«launchWebAuthFlow completed Object {message: "User interaction required."} undefined »
我尝试在 4 天内获得 Facebook 令牌。我累了。我做错了什么?
为什么 chrome.identity.getAuthToken 适用于 Google+,而 chrome.identity.launchWebAuthFlow 不适用于 Facebook?
我希望有人做过同样的事情并且可以帮助我。