gpt4 book ai didi

javascript - Google Plus API 错误 gapi.loaded_0

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:41:13 29 4
gpt4 key购买 nike

我正在尝试将 requireJS 与 Google plus API 一起使用,但是当我点击登录按钮时出现错误

错误和截图如下:

GET https://apis.google.com/_/scs/apps-static/_/js/k=oz.gapi.en.f5Li87Zolqg.O/m…sv=1/d=1/ed=1/am=AQ/RS=AGLTcCPR6xH_GlLdKZ8KMxaWNPWQokoYsg/cb=gapi.loaded_0

截图:https://i.imgsafe.org/098c5b5634.png

我正在使用这段代码:
gapi is not defined error comes when using with requirejs

注意:我在 JavaScript 文件中调用 gp.js 并在此处定义它,这是它的第一行。

我的 screen.js 文件

define(["facebook","fb","googleplus","gp"], function(facebook,fb,gapi,gp){
// some bunch other code will go here

$('#login').click(login);

// some other code will go here

});

gp.js 包含以下代码

 //$('#login').click(login);
//$('#logout').click(logout);
function logout(){
gapi.auth.signOut();
location.reload();
}
function login() {
var myParams = {
'clientid' : '455646565646-ppqmgsfghfdhgfghqguj3i4ir70i.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.me https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile'
};
gapi.auth.signIn(myParams);
}

window.loginCallback = function (result) {
if (result['status']['signed_in']) {
gapi.client.load('plus', 'v1', function () {
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 += "Email:" + email + "<br>";
str += "DOB:" + resp['birthday'] + "<br>";
str += "Gender:" + resp['gender'] + "<br>";
document.getElementById("profile").innerHTML = str;
});
});
}
}

onLoadCallback = function(){
gapi.client.setApiKey('Sgtfjhygjhgjhg9U1nKaZ5H1MmwTuthspQPNqY');
gapi.client.load('plus', 'v1',function(){});
}

我的 main.js 放在这里

require.config({
shim: {

'gp' : {
deps: ['jquery','googleplus'],


},
'googleplus' : {
deps: ['jquery'],
exports: 'gapi'
},


},
paths: {
'googleplus': 'https://apis.google.com/js/client.js?onload=onLoadCallback'

},

})
require(['gp']);

为什么会发生这种情况,我该如何解决?

最佳答案

gs.js 必须是一个模块,如果您想使用模块内定义的函数,该模块必须返回此函数:

define(['jquery', 'googleplus'], function($, gapi) {
function logout(){
gapi.auth.signOut();
location.reload();
}
function login() {
var myParams = {
'clientid' : '455646565646-ppqmgsfghfdhgfghqguj3i4ir70i.apps.googleusercontent.com',
'cookiepolicy' : 'single_host_origin',
'scope' : 'https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/plus.me https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile'
};
gapi.load('client:auth2', function() {
gapi.auth2.init(myParams).then(function() {
gapi.auth2.getAuthInstance().signIn().then(loginCallback);
});
});
}

var loginCallback = function () {
gapi.client.load('plus', 'v1', function () {
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 += "Email:" + email + "<br>";
str += "DOB:" + resp['birthday'] + "<br>";
str += "Gender:" + resp['gender'] + "<br>";
document.getElementById("profile").innerHTML = str;
});
});

}

gapi.client.setApiKey('Sgtfjhygjhgjhg9U1nKaZ5H1MmwTuthspQPNqY');

return {
login: login,
logout: logout
};
});

现在您可以在其他模块中使用函数loginlogout:

define(["jquery", "gp"], function($, gp){
$('#login').click(gp.login);
});

编辑:

我尝试根据https://developers.google.com/identity/sign-in/web/reference#gapiauth2initwzxhzdk19paramswzxhzdk20 重写login 函数

关于javascript - Google Plus API 错误 gapi.loaded_0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38720878/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com