标签: google-api-js-client

使用google api javascript客户端访问谷歌联系人 - 怎么样?

我正在实现基于google api javascript库的仅客户端webapp.不幸的是,这个库不支持联系人.或者是吗?这是一个没有文档的功能吗?如果没有,是否有另一种工作方式来访问联系人?例如,已弃用的gdata api?我已经在stackoverflow上找到了关于这个主题的一些答案.但是没有一个人能给我一个明确的答案.

google-contacts-api google-api-js-client

5
推荐指数
1
解决办法
2689
查看次数

使用Google Drive SDK共享文件

我一直在关注Google的文档,以便在云端硬盘上共享文件:共享文件

如果我从Google云端硬盘界面将文件上传到Google云端硬盘,然后尝试从我的网络应用程序共享此文件,我的JavaScript控制台中出现以下错误:

在铬:

Refused to display 'https://drive.google.com/share?id=0B6UmN_AivG7SLWVYakF2Rk1CdDg&foreignServi…=postMessage&appId=958414147877&embedOrigin=http%3A%2F%2Fsandbox.velop.org' in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'. 
Run Code Online (Sandbox Code Playgroud)

在Firefox中:

[14:04:41.157] Load denied by X-Frame-Options: https://drive.google.com/share?id=0B6UmN_AivG7SLWVYakF2Rk1CdDg&foreignService=explorer&shareService=explorer&shareProtocolVersion=2&command=init&subapp=10&popupWindowsEnabled=true&shareUiType=default&rand=1370585078609&theme=2&client=postMessage&appId=958414147877&embedOrigin=http%3A%2F%2Fsandbox.velop.org does not permit cross-origin framing.
Run Code Online (Sandbox Code Playgroud)

现在奇怪的是,如果我从我的webapp创建文件并通过api上传到Drive,我可以毫无问题地共享文件.

更奇怪的是,我只需从Drive中打开文件一次就足够了(我已经在我的驱动器中安装了webapp,因此我可以使用我的webapp打开文件)以便能够共享它,即使以后我不使用Drive来再打开文件.

有什么想法会导致这种行为吗?

在我的Drive SDK控制台中,我将Open URL设置为: http://sandbox.velop.org/my-google-drive/detail

当我使用我的webapp在Drive中打开文件时,Drive会将我重定向到:( http://sandbox.velop.org/my-google-drive/detail?state=%7B%22ids%22:%5B%220B6UmN_AivG7SLWVYakF2Rk1CdDg%22%5D,%22action%22:%22open%22,%22userId%22:%22105908447865504163566%22%7D能够共享)

当我在我的webapp中打开文件时,URL就像:( http://sandbox.velop.org/my-google-drive/0B6UmN_AivG7SLWVYakF2Rk1CdDg/detail只有在之前从驱动器打开一次才能共享)

编辑:

我意识到这是A如对谷歌云端硬盘API标准的行为,在这里:

当用户批准这些范围时,将为用户安装该应用程序,可以访问用户创建的文件或使用该应用程序打开的文件.

有没有办法让应用程序打开/写入任何文件?

我认为https://www.googleapis.com/auth/drive在注册我的应用程序时使用范围将允许我这样做,但似乎并非如此.

javascript google-drive-api google-api-js-client

5
推荐指数
1
解决办法
1177
查看次数

在沙盒iframe环境中使用google javascript api

我有一个使用google javascript API的HTML5应用.我最近发现这个应用程序需要在iframe沙盒环境中运行.我知道它似乎试图解决沙盒环境的目标; 但是iframe仍然允许一些功能(参见下面的约束),这让我觉得有一些希望.

我在验证过程中遇到问题:加载后,google javascript api会在原始页面上添加一个iFrame(在我的情况下已经是iframe)并使用postMessage机制在windows之间进行通信.我想使用google api进行OAuth2.0身份验证过程以及查询API.

这是一个复制案例; 我使用的是谷歌提供的authSample.html页面的简化版本.

<!DOCTYPE html>
<html>
<head>
    <meta charset='utf-8' />
    <title>original auth page</title>
</head>
<body>
    <button id="authorize-button">Authorize</button>
    <div id="content">Not authentified</div>
    <script type="text/javascript">
        var clientId = '<use yours>';
        var apiKey = '<use yours>';
        var scopes = 'https://www.googleapis.com/auth/analytics.readonly';
        var authorizeButton = document.getElementById('authorize-button');
        var resultDiv = document.getElementById('content');
        function handleClientLoad() {
            gapi.client.setApiKey(apiKey);
            authorizeButton.onclick = handleAuthClick;
        }

        function handleAuthResult(authResult) {
            if (authResult && !authResult.error) {
                makeApiCall();
            } else {
                resultDiv.innerHTML = "handleAuthResult Failed";
            } …
Run Code Online (Sandbox Code Playgroud)

html javascript iframe google-api google-api-js-client

5
推荐指数
1
解决办法
1117
查看次数

Google Drive API Application data accessing credentials from Web browser(Javascript)

I'm trying to obtain credentials from Google Console to access my Application Drive data through Web browser(Javascript) option (In order to use Picker API latter on). But when I select option Application data(Access data belonging to your own application) I got the message:

无法从 Web 浏览器安全地访问应用程序数据。请考虑选择其他平台。

谁能解释一下,为什么它不安全,以及如何使用 Web 浏览器访问我的应用程序数据,也许应该选择不同的凭据?

谢谢。

google-drive-api google-api-js-client google-picker

5
推荐指数
1
解决办法
2471
查看次数

Google Plus API error gapi.loaded_0

I am trying to use requireJS with Google plus API, but getting an error when I click login button

Here is the error and screenshot:

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

Screenshot: https://i.imgsafe.org/098c5b5634.png

And I am using this code:
gapi is not defined error comes when using with requirejs

Note: I am calling a gp.js inside a JavaScript file and defining it there here is the first line for it.

My screen.js file

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

            $('#login').click(login); …
Run Code Online (Sandbox Code Playgroud)

javascript jquery requirejs google-api-js-client

5
推荐指数
1
解决办法
8056
查看次数

验证服务帐户以使用 JavaScript 客户端库调用 Google API

我想使用适用于 JavaScriptGoogle 客户端库从本地主机(WAMP 环境)到Google FusionTables API(以及一些其他 API)进行JSON-RPC调用

我采取的步骤:

  1. Google Developer Console上设置项目
  2. 启用 FusionTables API
  3. 创建了一个服务帐户并下载了 JSON 文件。
  4. 使用auth包成功加载JS客户端库: gapi.load('client:auth2', initAuth);
  5. 通过以下3种方式构造init方法参数:
    • 逐字下载的 JSON
    • 下载的 JSON 修改为包含范围
    • 只是客户端 ID 和范围
  6. 尝试(但失败)初始化 GoogleAuth 实例: gapi.auth2.init(params)
    功能失败(原因){
        控制台日志(原因);
    }
    gapi.load('client:auth2', initAuth);

    函数 initAuth() {

        var APIkey = '我的 API 密钥';
        gapi.client.setApiKey(APIkey); //我理解这对于授权请求是不必要的,包括只是为了更好的衡量

        var GDTSAKey = '我的服务帐户密钥';
        var scopes = 'https://www.googleapis.com/auth/fusiontables';
        gapi.auth2.init({
            client_id: "101397488004556049686",
            范围:'https://www.googleapis.com/auth/fusiontables'
        }).then(signin, failed("无法启动"));
        //将下载的 JSON 对象逐字作为参数传递给 init 也不起作用
    } //initAuth() …

javascript oauth google-api google-api-js-client

5
推荐指数
1
解决办法
2028
查看次数

使用 Google auth2 登录,强制用户输入密码

我刚刚在我们的主页上实现了 Google JavaScript 登录按钮,一切都按照预期的方式工作,但这有时很糟糕..

所以问题是我们的用户在同一台​​计算机上使用我们的应用程序,每天有 3-4 个不同的用户。通过谷歌登录,我们可以在我们自己的网站中实现一些谷歌产品功能。

我了解使用 google 登录会使您登录 Google 帐户,并授予申请权限。我也明白这是让用户的生活更轻松的方式,而不是每次都在每个网站上登录。

我可以通过GoogleAuth.signOut()或轻松删除应用程序权限GoogleUser.disconnect(),即使使用GoogleAuth.disconnect(),因此.isSignedIn()将变为假,因此用户将始终拥有提示屏幕,我也使用prompt: 'select_account'on.signIn()确保即使是单个用户也会获得提示屏幕。

问题是当第二个用户进入我们的登录屏幕并选择“使用 Google 登录”时,他实际上可以在提示屏幕中选择任何以前的用户并以不是他自己的身份进入我们的应用程序,但实际上可以选择以前的用户并进行身份验证自己作为对方无需输入任何密码。仅当以前的用户也从其 Goole 帐户注销时,才会询问密码。

我知道一个 hack 是将用户重定向到 URL: https://www.google.com/accounts/Logout?continue=https://appengine.google.com/_ah/logout?continue=YOUR_REDIRECT_URL 但这似乎是一个非常糟糕的解决方案,因为我们的用户也将我们的应用程序与他们的个人设备一起使用,所以如果他们从他们登录的所有应用程序中注销,那就有点糟糕了。

我知道在每次登录时询问密码并不是 auth2 打算工作的方式,但我确定有一种方法可以强制用户在每次按下“用谷歌登录”按钮时输入密码。

我花了好几个小时寻找解决方案并尝试了多种方法,我希望你们中有人能指出我错过的大海捞针

javascript google-api-js-client google-signin googlesigninapi

5
推荐指数
0
解决办法
623
查看次数

当 Chrome 浏览器有多个帐户时,gapi.auth2.getAuthInstance().isSignedIn.get() 始终为 false

我复制了Google Calendar API Quickstart 中给出的示例,并将其替换为适当的信息。每次刷新页面时,都会在获取api数据之前要求我进行授权。

我正在使用 Chrome,我目前有多个帐户/用户。我注意到如果我打开一个隐身窗口并使用一组凭据登录,那么当我刷新页面时,我不会被要求授权。

请注意,一旦我认证,我收到日历信息,所以我不相信这是同一个问题client_idapi_keyscope,等。

查看示例代码,我猜getAuthInstance()由于多个帐户/用户而变得困惑。有谁有想法吗?谢谢!

google-calendar-api google-api-js-client

5
推荐指数
1
解决办法
643
查看次数

如何将 Google Classroom API 与 React-Native 集成?

我正在努力寻找一种将Google Classroom APIReact-Native应用程序集成的方法。我已经阅读了 Google API 文档,但无法找到将此 api 集成到我的 React-Native 应用程序中的方法。

选项 - 1 https://developers.google.com/classroom/quickstart/js
上面是显示浏览器快速启动的链接 ,但我无法将脚本标签插入我的反应本机应用程序。而且react-native不是浏览器,所以最终它不适用于react-native。所以我认为这个选项适用于网络。

选项 - 2

https://developers.google.com/classroom/quickstart/nodejs
Node.js 快速入门- 本指南说它适用于 Node.js,如果您查看集成代码,它是完整的 Node.js 代码,需要节点服务器来跑步。它仅适用于服务器端node.js,它也不起作用。

然后我搜索了任何现成的 NPM 包,但它也不适用于反应本机。没有官方的 google npm 可在 React-Native 应用程序中使用。

我还找到了一种使用 Gapi API 的方法。它不会帮助 Gapi -如何在反应中使用gapi

任何帮助将不胜感激,提前致谢:)

google-api google-api-js-client reactjs react-native google-classroom

5
推荐指数
0
解决办法
916
查看次数

platform.js 还是 api.js?谷歌应用程序接口

试图了解我应该如何引用静态页面 Web 应用程序的 google api。我很困惑。

  1. 我不确定完整的文档在哪里,因为我已经在这个存储库中偶然发现了一些损坏的链接
  2. 这些教程引用了 2 个不同的 url,但似乎与此存储库相关

https://developers.google.com/identity/sign-in/web/reference#gapiauth2initparams

<script src="https://apis.google.com/js/platform.js?onload=init" async defer></script>
Run Code Online (Sandbox Code Playgroud)

https://developers.google.com/sheets/api/quickstart/js

<script async defer src="https://apis.google.com/js/api.js"
      onload="this.onload=function(){};handleClientLoad()"
      onreadystatechange="if (this.readyState === 'complete') this.onload()">
Run Code Online (Sandbox Code Playgroud)

有什么区别?应该使用什么网址?有关系吗?应该使用 Node 客户端而不是 Web 来编译它吗?

javascript web-applications google-api google-api-js-client

5
推荐指数
1
解决办法
5724
查看次数