Google Plus API 错误gapi.loaded_0

2024-01-06

我尝试将 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']);

为什么会发生这种情况以及如何解决它?


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
    };
});

现在您可以使用函数login and logout在其他模块中:

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

EDIT:

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Google Plus API 错误gapi.loaded_0 的相关文章

随机推荐

  • C语言中为什么会有NULL?

    为什么有一个NULL在C语言中 是否有一个上下文 其中只是简单的文字0会不会工作完全一样 实际上 你可以使用文字0任何你会使用的地方NULL 第 6 3 2 3p3 节C标准 http www open std org jtc1 sc22
  • Flutter:从其他页面访问存储的 Sharedpreference 值

    我正在一个名为的页面中存储一个值page1 dart 我想访问存储的值page2 dart or page3 dart 我怎样才能实现这个目标 Flutter 共享首选项实际上是作为内存缓存实现的 你第一次打电话的时候SharedPrefe
  • 使用 OpenCV 时 Apple Mach-O 链接器和多个“未定义符号”错误

    我目前是 Objective C 的真正初学者 我正在使用 OpenCV 框架开发一个应用程序 我正在遵循教程 但是在构建项目时 我遇到了几个错误 Undefined symbols for architecture i386 std 1
  • 获取 Android 上的所有总空间和可用空间

    据我所知 Android 上有 应用程序和缓存的内部存储器 某些手机 上的内置 SD 卡 不可拆卸 用于存储音乐和照片的外部 SD 卡 可拆卸 如何通过检查它们是否存在来获取每个手机的总数和可用数量 某些手机没有内部 SD 卡 Thanks
  • iOS - 链接器错误、重复符号

    似乎我在尝试编译时遇到错误 它似乎直接指向两个文件 MenuViewController 和 FirstTopViewController 我认为这与我的导入有关 因为它们每个都在导入另一个 但是错误引用了我的 Building 对象 该对
  • 打瞌睡模式和应用程序待机

    我如何在我的应用程序中知道手机是否处于打瞌睡模式或我的应用程序是否处于待机模式 我也可以通过某种订阅方式知道吗 有一个区别应用程序待机 您的应用程序转到的位置 睡觉是因为很孤独 和Doze 系统去哪里 睡觉 因为用户有生命 Doze仅当您的
  • 使用 Dapper 映射 SqlGeography

    我有实体 Point 其中包含 ID 文本和地理坐标 CREATE TABLE Point Id INT IDENTITY CONSTRAINT PK Point Id PRIMARY KEY Coords GEOGRAPHY NOT NU
  • android ConstraintLayout 不允许负边距

    我相对于布局指南放置了很多项目 并希望将新项目放置在几乎与此布局指南相关的位置 我尝试使用负布局边距但没有成功 android translationX 10dp android translationY 10dp
  • Laravel:使用 AJAX 请求渲染部分视图

    我正在尝试制作一个单页 CRUD 应用程序 并且将 AJAX 与 jQuery 结合使用 在本例中 我提交表单并在数据库中异步存储一个新国家 地区 然后使用新数据渲染部分视图 这是我的脚本和从数据库检索国家 地区并返回部分视图的方法 cre
  • 写入错误:使用 O_DIRECT 打开文件时参数无效

    对我来说 用以下内容写入文件非常重要O DIRECT flag 这就是我打开文件的方式 Open the file int fd if fd open inFilepath O WRONLY O CREAT O SYNC O DIRECT
  • 在表达式中的 let .. 中使用守卫

    有时我会写这样的代码 solveLogic Int gt Int gt Int solveLogic a b let x 1 brainiac a gt x 1 a b 333 otherwise 5 in brainiac 每次我都想写这
  • IPython Notebook 之前的单元格内容

    是否可以在 IPython Notebook 单元格中获取上一个 上方 单元格内容 我可以使用 capture 魔术函数查看以前的输出 但我不知道如何获取以前的单元格内容 recall jupyter notebook cell numbe
  • 普通 Javascript 对象上的 jQuery.bind() 事件

    是否可以将 jQuery 事件绑定到普通的非 DOM Javascript 对象 var myobject myobject bind foobar function alert daa myobject trigger foobar 有何
  • 如何让下面的代码更快

    int u1 u2 unsigned long elm1 20 mulpre 16 20 res1 40 res2 40 64 bits long res1 res2 initialized to zero l 60 while l for
  • PHP Array_intersect 在具有未知数量键的多维数组上

    我正在尝试在拥有资源 人员 的应用程序中制作高级搜索过滤器 我在 1 个多维数组中得到了所有结果 该应用程序的用户可以搜索人员的职位名称 技能 工作领域和国家 地区 我已经完成了查找符合用户给出的标准的人的部分 这些结果存储在多维数组中 如
  • Android ACTION_GET_CONTENT 不更新下载目录文件

    我在选择文件时遇到问题下载目录使用ACTION 获取 内容 如果我删除本地存储中的 ES 资源管理器或文件管理器中的任何文件 这些删除的文件不会在下载在我的应用程序中打开时的目录 任何变化下载dir 没有反映在选择器中 要选择一个文件 我正
  • Angular 通用 html lang 标签

    在 Angular Universal 中 我有一个 index html 文件 顶部有 我想根据我所在的页面更改此设置 maldonadoattorney com es jailreleases 将是 maldonadoattorney
  • Django - 使用模板标签和“with”?

    我有一个自定义模板标签 def uploads for user user uploads Uploads objects filter uploaded by user problem upload False num uploads u
  • 基于支持向量的数据重采样器

    我正在努力实现一个数据重采样器以基于support vectors 这个想法是为了适应SVM分类器 得到support vector类的点 然后通过仅选择每个类的支持向量点附近的数据点来平衡数据 以使类具有相同数量的示例 忽略所有其他 远离
  • Google Plus API 错误gapi.loaded_0

    我尝试将 requireJS 与 Google plus API 一起使用 但是当我单击登录按钮时出现错误 这是错误和屏幕截图 GET https apis google com scs apps static js k oz gapi e