Ico*_*015 5 javascript jquery oauth google-chrome-extension
我Oauth用于开发chrome扩展程序,用户可以通过Google帐户登录.我的代码jquery如下所示.
我还在html文件中包含了js库:
<script src="js/jquery-2.1.1.min.js" type="text/javascript"></script>
<script src="js/client.js"></script>
Run Code Online (Sandbox Code Playgroud)
并具有JS功能:
function handleAuthClick(event) {
gapi.auth.authorize({
client_id: clientID,
scope: scopes,
response_type: 'code token id_token gsession',
access_type: accessType,
immediate: false
}, handleAuthResult);
return false;
}
Run Code Online (Sandbox Code Playgroud)
我的问题是:我无法通过谷歌帐户登录,它显示错误:Uncaught TypeError: Cannot read property 'authorize' of undefined.
注意:如果我以html身份运行,我可以正常登录,但在用作Chrome扩展程序时我无法登录.
小智 3
看来gapi.auth 仍未初始化,原因是您在进行此调用之前没有按照正确的步骤链进行设置。因此,我只是在这里放一个示例,供您查看在成功初始化 gigi 对象时是否遗漏了任何步骤。就这样
<script type="text/javascript">
(function( gapi ) {
gapi.client.setApiKey(apiKey); // your variable for apiKey
window.setTimeout(checkAuth,1);
function checkAuth() {
gapi.auth.authorize({client_id: clientID, scope: scopes, immediate: true}, handleAuthResult);
}
function handleAuthResult(authResult) {
var authorizeButton = document.getElementById('id-of-your-login-button');
if (authResult && !authResult.error) {
authorizeButton.style.visibility = 'hidden';
makeApiCall();
} else {
authorizeButton.style.visibility = '';
authorizeButton.onclick = handleAuthClick;
}
}
function handleAuthClick(event) {
gapi.auth.authorize({
client_id: clientID,
scope: scopes,
response_type: 'code token id_token gsession',
access_type: accessType,
immediate: false
}, handleAuthResult);
return false;
}
})( gapi );
</script>
Run Code Online (Sandbox Code Playgroud)
您可以安全地将此脚本标记放在按钮 html 代码下方的 body 标记中。
| 归档时间: |
|
| 查看次数: |
5549 次 |
| 最近记录: |