尝试 SE OAuth init 时 Firefox 插件中的 channelUrl 错误
channelUrl error in Firefox addon while trying SE OAuth init
我正在尝试使用客户端 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 域?
我通过一些实验找到了答案。
原来Firefox扩展的channelUrl应该是一个内部资源文件,格式为:
channelUrl = 'resource://<enstenion_id>-at-jetpack/<extension_name>/data/blank.html'
我正在尝试使用客户端 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 域?
我通过一些实验找到了答案。
原来Firefox扩展的channelUrl应该是一个内部资源文件,格式为:
channelUrl = 'resource://<enstenion_id>-at-jetpack/<extension_name>/data/blank.html'