试图简单地实现google+;登录按钮HTML
我正在尝试在我的网站中实现google+登录按钮!使用HTML,我不知道为什么按钮本身不起作用。我遵照这些指示: 这就是我目前所拥有的(我最初找到了登录和注销按钮的代码,但决定只使用google+API) 我应该把代码放在哪里试图简单地实现google+;登录按钮HTML,html,button,google-plus,Html,Button,Google Plus,我正在尝试在我的网站中实现google+登录按钮!使用HTML,我不知道为什么按钮本身不起作用。我遵照这些指示: 这就是我目前所拥有的(我最初找到了登录和注销按钮的代码,但决定只使用google+API) 我应该把代码放在哪里 function signinCallback(authResult) { if (authResult['status']['signed_in']) { // Update the app to reflect a signed in user
function signinCallback(authResult) {
if (authResult['status']['signed_in']) {
// Update the app to reflect a signed in user
// Hide the sign-in button now that the user is authorized, for example:
document.getElementById('signinButton').setAttribute('style', 'display: none');
} else {
// Update the app to reflect a signed out user
// Possible error values:
// "user_signed_out" - User is signed-out
// "access_denied" - User denied access to your app
// "immediate_failed" - Could not automatically log in the user
console.log('Sign-in state: ' + authResult['error']);
}
}
我是不是错过了一个听众或者什么的??谢谢你
<!DOCTYPE html>
<html>
<head>
<script src="https://apis.google.com/js/client:platform.js" async defer></script>
</head>
<body>
<!---<input type="button" value="Login" onclick="login()" />
<input type="button" value="Logout" onclick="logout()" />--->
<span id="signinButton">
<span
class="g-signin"
data-callback="signinCallback"
data-clientid="805034040388-erokn7fetmrl9id1romu3o75m7tbnpqp.apps.googleusercontent.com"
data-cookiepolicy="single_host_origin"
data-requestvisibleactions="http://schema.org/AddAction"
data-scope="https://www.googleapis.com/auth/plus.login">
</span>
</span>
<div id="profile"></div>
<script type="text/javascript">
function logout()
{
gapi.auth.signOut();
location.reload();
}
function login()
{
var myParams = {
'clientid' : 'PUTYOUR_CLIENT_ID.apps.googleusercontent.com',
'cookiepolicy' : 'single_host_origin',
'callback' : 'loginCallback',
'approvalprompt':'force',
'scope' : 'https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/plus.profile.emails.read'
};
gapi.auth.signIn(myParams);
}
function loginCallback(result)
{
if(result['status']['signed_in'])
{
var request = gapi.client.plus.people.get(
{
'userId': 'me'
});
request.execute(function (resp)
{
var email = '';
if(resp['emails'])
{
for(i = 0; i < resp['emails'].length; i++)
{
if(resp['emails'][i]['type'] == 'account')
{
email = resp['emails'][i]['value'];
}
}
}
var str = "Name:" + resp['displayName'] + "<br>";
str += "Image:" + resp['image']['url'] + "<br>";
str += "<img src='" + resp['image']['url'] + "' /><br>";
str += "URL:" + resp['url'] + "<br>";
str += "Email:" + email + "<br>";
document.getElementById("profile").innerHTML = str;
});
}
}
function onLoadCallback()
{
gapi.client.setApiKey('PUT_YOUR_KEY');
gapi.client.load('plus', 'v1',function(){});
}
</script>
<script type="text/javascript">
(function() {
var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
po.src = 'https://apis.google.com/js/client.js?onload=onLoadCallback';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
})();
</script>
</body>
</html>
函数注销()
{
gapi.auth.signOut();
location.reload();
}
函数登录()
{
var myParams={
“clientid”:“PUTYOUR_CLIENT_ID.apps.googleusercontent.com”,
'cookiepolicy':'single_host_origin',
“回调”:“loginCallback”,
“批准提示”:“强制”,
'范围':'https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/plus.profile.emails.read'
};
gapi.auth.signIn(myParams);
}
函数loginCallback(结果)
{
如果(结果['status']['signed_in'])
{
var request=gapi.client.plus.people.get(
{
“userId”:“我”
});
请求执行(功能(resp)
{
var电子邮件=“”;
如果(回复[“电子邮件])
{
对于(i=0;i”;
str+=“Image:+resp['Image']['url']+”
”;
str+=“
”;
str+=“URL:+resp['URL']+”
”;
str+=“电子邮件:”+Email+“
”;
document.getElementById(“profile”).innerHTML=str;
});
}
}
函数onLoadCallback()
{
gapi.client.setApiKey('PUT_YOUR_KEY');
load('plus','v1',function(){});
}
(功能(){
var po=document.createElement('script');po.type='text/javascript';po.async=true;
po.src=https://apis.google.com/js/client.js?onload=onLoadCallback';
var s=document.getElementsByTagName('script')[0];s.parentNode.insertBefore(po,s);
})();
我在控制台中看到的错误是:
找不到名为“signinCallback”的回调函数
您没有在此处使用函数:data callback=“signinCallback”
在您的文档中,它就在下面:
函数符号回调(authResult){
如果(authResult['status']['signed_in']){
//更新应用程序以反映已登录的用户
//现在用户已获得授权,请隐藏“登录”按钮,例如:
document.getElementById('signinButton').setAttribute('style','display:none');
}否则{
//更新应用程序以反映已注销的用户
//可能的错误值:
//“用户已注销”-用户已注销
//“拒绝访问”-用户拒绝访问您的应用
//“立即\u失败”-无法自动登录用户
log('登录状态:'+authResult['error']);
}
}
我让它在本地主机上工作。
请确保您遵循了该链接中的正确步骤。
尤其是第一步
完成第一步后,您必须注意两大细节:
谷歌+登录按钮演示
html,正文{边距:0;填充:0;}
#登录按钮{
填充物:5px;
}
#oauth2在{margin:0;padding:0;}之前的结果
.hide{display:none;}
.show{display:block;}
var loginFinished=函数(authResult){
如果(authResult){
var el=document.getElementById('oauth2-results');
var标签=“”;
toggleDiv('oauth2-results');
如果(authResult['status']['signed_in']){
标签='用户授权访问:';
gapi.auth.setToken(authResult);
}否则{
标签='拒绝访问:'+authResult['error'];
}
el.innerHTML=
标签+“”+
//JSON.stringify在IE8中不起作用。
“{
”+
“id_标记”:“+authResult['id_标记']+”,
+
““访问令牌”:“+authResult['access\u-token']+”,
”+
““状态”:“+authResult['state']+”,
”+
““expires_in”:“+authResult['expires_in']+',
”+
““错误”:“+authResult['error']+”,
”+
““错误描述”:“+authResult['error\u description']+”,
”+
““authUser”:“+authResult['authUser']+”,
”+
““状态”:{”+'
”+
“谷歌登录”:“+authResult['status']['google谷歌登录']+',
”+
“方法”:“+authResult['status']['method']+',
”+
““已登录”:“+authResult['status']['signed_in']+'”
”+
“}
”+
“}
”;
toggleDiv(“登录按钮”);
}否则{
document.getElementById('oauth2-results').innerHTML=
“空authResult”;
}
};
函数切换DIV(id){
var div=document.getElementById(id);
if(div.getAttribute('class')=='hide'){
div.setAttribute('class','show');
}否则{
div.setAttribute('class','hide');
}
}
是的,我不知道在我的代码中应该在哪里包含此内容