在vkontakte api中将Chrome应用程序授权为独立版

时间:2015-03-22 22:03:10

标签: google-chrome-extension google-chrome-app vk

我正在尝试在Chrome应用中使用vk.messages api,如下所示:

app.login = function () {
  var link = 'https://oauth.vk.com/authorize?' +
    'client_id=4837072' +
    '&scope=friends,docs,status,messages,notifications,' +
    '&redirect_uri=' + 'https://oauth.vk.com/blank.html' +
    '&display=popup' +
    '&v=API_VERSION' +
    '&response_type=token';
  var width = 655;
  var height = 539;
  var left = (screen.width / 2) - (width / 2);
  var top = (screen.height / 2) - (height / 2);
  chrome.identity.launchWebAuthFlow({
    'url': link,
    'interactive': true
  }, function (redirect_url) {
    // redirect_url is undefined
    console.log(redirect_url);
  });
};

It needs以这种方式设置auth redirect_uri“https://oauth.vk.com/blank.html”,但chrome.identity api使用“https://.chromiumapp.org/”。因此,显示vk auth窗口并且重定向有效,但chrome无法确定auth重定向,并且不会使用重定向url回调。有没有其他方法可以在Chrome应用程序中获取重定向网址?

1 个答案:

答案 0 :(得分:1)

好吧,我知道你要去哪里“它需要以这种方式设置redirect_uri

redirect_uri=https://oauth.vk.com/blank.html  
     

这些方法的强制条件是说明它们仅适用于桌面应用程序。

我担心无法覆盖identity API使用的网址。

在这种情况下,您可以使用相同的路线Silver Bird Twitter客户端:在目标地址中注入Content Script。从那里你可以提取所需的代币。

编辑:我忘了您正在编写Chrome应用。然后,您应该尝试使用<webview>及其脚本注入功能。

这意味着您必须在没有chrome.identity自己帮助的情况下进行OAuth,但至少这是一个解决方案。