尝试SE OAuth init时Firefox插件中的channelUrl错误

时间:2015-02-15 10:44:01

标签: javascript oauth-2.0 firefox-addon

我正在尝试使用客户端OAuth流开发使用StackExchange API的Firefox插件。我只是使用StackApps文档中的示例代码:

SE.init({ 
    clientId: 4267, 
    key: '8p1pDgmKlR6m6hUn80n21Q((', 
    channelUrl: 'https://api.stackexchange.com/docs/proxy',
    complete: function(data) { 
        $('#login-button')
            .removeAttr('disabled')
            .text('Run Example With Version '+data.version); 
    }
});

...

尝试运行插件时,我在控制台中收到以下错误:

uncaught exception: channelUrl must be under the current domain

我尝试将域名更改为其他内容,将其与我在StackApps.com注册的应用中的OAuth Domain值相匹配。我也试过禁用Desktop Application OAuth Redirect Uri。一切都没有用。

那么,我怎样才能摆脱这个错误? Firefox扩展是否使用自己隐藏的oauth域?

1 个答案:

答案 0 :(得分:3)

我通过一些实验找到了答案。

事实证明,Firefox扩展的channelUrl应该是一个内部资源文件,格式为:

channelUrl = 'resource://<enstenion_id>-at-jetpack/<extension_name>/data/blank.html'