我尝试将 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 https://i.imgsafe.org/098c5b5634.png
我正在使用这段代码:
与 requirejs 一起使用时会出现gapi未定义错误 https://stackoverflow.com/questions/38693439/gapi-is-not-defined-error-comes-when-using-with-requirejs/38694925#38694925
注意:我正在打电话gp.js
在 JavaScript 文件中定义它,这里是它的第一行。
我的 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']);
为什么会发生这种情况以及如何解决它?