Google chrome extension 无法读取属性';chromeExOAuthConfig';Google Chrome扩展中的null值

Google chrome extension 无法读取属性';chromeExOAuthConfig';Google Chrome扩展中的null值,google-chrome-extension,twitter,twitter-oauth,Google Chrome Extension,Twitter,Twitter Oauth,我正在开发一个Chrome扩展,它将推特。我用这个 我需要帮助从Twitter获得授权用户。并将凭据保存在某个地方,以便我可以使用它们从我的应用程序中发送推文。我是新手,我需要指导。我写了以下方法。启动授权过程 但它并没有把我发送到Twitter auth。当我调用这个authorize方法时。我做得对吗 我需要一些指针。我还下载了chrome_ex_oauth.html。这将被称为回调。对吧? 我不知道。。。当我获得这些访问令牌和机密时,我将针对每个授权用户保存它们,并将它们用于推特 <

我正在开发一个Chrome扩展,它将推特。我用这个

我需要帮助从Twitter获得授权用户。并将凭据保存在某个地方,以便我可以使用它们从我的应用程序中发送推文。我是新手,我需要指导。我写了以下方法。启动授权过程

但它并没有把我发送到Twitter auth。当我调用这个authorize方法时。我做得对吗

我需要一些指针。我还下载了chrome_ex_oauth.html。这将被称为回调。对吧?

我不知道。。。当我获得这些访问令牌和机密时,我将针对每个授权用户保存它们,并将它们用于推特

 <script type="text/javascript" src="chrome_ex_oauthsimple.js"></script>
  <script type="text/javascript" src="chrome_ex_oauth.js"></script>  

 jQuery(function() {

            var oauth = ChromeExOAuth.initBackgroundPage({
                  'request_url': 'https://api.twitter.com/oauth/request_token',
                  'authorize_url': 'https://api.twitter.com/oauth/authorize',
                  'access_url': 'https://api.twitter.com/oauth/access_token',
                  'consumer_key': '---',
                  'consumer_secret': '---',
                  'scope': '',
                  'app_name': 'Tweet'
                });
            jQuery('#connect').click(function (){

                oauth.authorize(install);       
            });
        });

        function install() {
          alert('success')
        }

        function callback(resp, xhr) {
          // ... Process text response ...
        };  

jQuery(函数(){
var oauth=ChromeExOAuth.initBackgroundPage({
'请求url':'https://api.twitter.com/oauth/request_token',
'授权url':'https://api.twitter.com/oauth/authorize',
“访问url”:https://api.twitter.com/oauth/access_token',
“消费者密钥”:“---”,
"消费者的秘密":"--",
“范围”:“,
“应用程序名称”:“推特”
});
jQuery(“#连接”)。单击(函数(){
oauth.authorize(安装);
});
});
函数安装(){
警报(“成功”)
}
函数回调(resp,xhr){
//…处理文本响应。。。
};  
编辑:

我的
oauth.authorize
被调用。此时将显示重定向页面。但它坚持“重定向…”。错误控制台显示以下错误

无法读取null的属性“chromeExOAuthConfig”

我发现Chrome OAuth教程非常臃肿和间接。我刚刚建立了一个扩展,它使用OAuth2提取私有GitHub数据

(还要确保查看injection.js和adapter.html——它们都独立于jQuery,并且是必需的)

基本上我只是反向设计了这个,以满足我的需要

正在发生的是:

  • 您使用应用程序ID请求授权
  • Twitter将让用户登录并授权应用程序
  • Twitter会将您重定向到指定的给定重定向参数(如果您不想担心您的扩展依赖于网页或服务器,我会将重定向指定为hit,因为您的扩展依赖于Twitter,如果Twitter关闭,则无所谓,而且这个robots.txt页面不会出现任何地方)
  • 添加要注入重定向url的内容脚本。让脚本提取查询字符串并将其附加到适配器页面url并重定向到该url
  • 在适配器页面中,从查询字符串中加载访问代码,并向Twitter发送带有访问代码和应用程序机密的请求。如果一切正常,您将收到来自Twitter的回调,提供用户访问令牌
  • 将令牌保存到扩展本地存储,关闭适配器页面,就可以了
  • 现在,当弹出窗口打开时,您可以从本地存储中获取OAuth2令牌,以便与TwitterAPI一起使用

    回答您的更新

    从我在您的控制台中看到的情况来看,似乎找不到背景页。您的分机是否有正在运行的背景页?如果是这样,并且这是新添加的,则应使用位于扩展旁边的“重新加载”按钮重新加载扩展chrome://extensions. 当你改变清单中声明的内容时,Chrome非常挑剔,通常需要重新加载。但是chrome.extensions.getBackgroundPage()是一个标准API调用,因此返回null是一个问题


    你研究过我的解决方案了吗?它工作得非常好,速度非常快,并且可以定制适配器页面,以显示较慢连接的加载进度(用户喜欢反馈)。它也不依赖jQuery。您可能不会注意到其中的区别,但是将jQuery库加载到重定向页面会使事务花费更长的时间,因为脚本必须拉入。

    我发现Chrome OAuth教程非常臃肿和间接。我刚刚建立了一个扩展,它使用OAuth2提取私有GitHub数据

    (还要确保查看injection.js和adapter.html——它们都独立于jQuery,并且是必需的)

    基本上我只是反向设计了这个,以满足我的需要

    正在发生的是:

  • 您使用应用程序ID请求授权
  • Twitter将让用户登录并授权应用程序
  • Twitter会将您重定向到指定的给定重定向参数(如果您不想担心您的扩展依赖于网页或服务器,我会将重定向指定为hit,因为您的扩展依赖于Twitter,如果Twitter关闭,则无所谓,而且这个robots.txt页面不会出现任何地方)
  • 添加要注入重定向url的内容脚本。让脚本提取查询字符串并将其附加到适配器页面url并重定向到该url
  • 在适配器页面中,从查询字符串中加载访问代码,并向Twitter发送带有访问代码和应用程序机密的请求。如果一切正常,您将收到来自Twitter的回调,提供用户访问令牌
  • 将令牌保存到扩展本地存储,关闭适配器页面,就可以了
  • 现在,当弹出窗口打开时,您可以从本地存储中获取OAuth2令牌,以便与TwitterAPI一起使用

    回答您的更新

    从我在您的控制台中看到的情况来看,似乎找不到背景页。您的分机是否有正在运行的背景页?如果是这样,并且这是新添加的,则应使用chrome上扩展旁边的重新加载按钮重新加载扩展://