我正在开发推文的Chrome扩展程序。我正在使用Google oAuth tutorial。
我需要帮助才能从Twitter获得授权用户。并在某处保存凭据,以便我可以使用它们从我的应用程序发推文。我是新手,我需要指导。我编写了以下方法。开始授权过程。
但它不会将我发送给Twitter认证。当我调用这个授权方法时。我做得对吗?
我需要一些指针。我也下载了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 ...
};
修改
我的oauth.authorize
被叫了。然后会出现重定向页面。但它坚持重定向......&#39;。错误控制台显示以下错误。
无法读取属性&#39; chromeExOAuthConfig&#39;为null
答案 0 :(得分:1)
我发现Chrome OAuth教程非常臃肿且间接。我刚刚建立了一个使用OAuth2提取私有GitHub数据的扩展。
Here is the source(一定要看看inject.js和adapter.html - 两者都独立于jQuery并且是必需的。)
我基本上只是改造了这个solution,以满足我的需求。
发生的事情是:
现在,当弹出窗口打开时,您可以从本地存储中获取OAuth2令牌以与Twitter API一起使用。
Here is more detail about the OAuth2 flow.
向您提供最新消息
从我在控制台中看到的内容看起来好像没有找到背景页面。您的扩展程序是否正在运行后台页面?如果是,并且这是新添加的,您应该使用chrome:// extensions处的扩展名旁边的重新加载按钮重新加载扩展程序。当您更改清单中声明的内容并且通常需要重新加载时,Chrome非常挑剔。但是chrome.extensions.getBackgroundPage()是一个标准的API调用,所以返回null是一个问题。
你有没有看过我的解决方案?它运行得非常好,非常快,并且可以自定义适配器页面以显示较慢连接(用户喜欢反馈)的加载进度。它也不依赖于jQuery。您可能不会注意到差异,但将jQuery库加载到重定向页面会使事务花费更长时间,因为必须引入脚本。