标签: google-oauth2

如何重定向回Android应用?

我需要打开自定义Chrome标签,将用户带到我的网站,然后将用户重定向回应用.它类似于为OAuth启动页面.

这是Android方面的样子......

AndroidManifest.xml(将意图过滤器添加到用于侦听URI的活动)

<activity android:name=".app.MyActivity"
        android:label="@string/title"
        android:theme="@style/AppTheme"
        android:launchMode="singleTask"
        android:screenOrientation="portrait">

        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="mytest" />
        </intent-filter>

    </activity>
Run Code Online (Sandbox Code Playgroud)

Activity.java(启动自定义chrome选项卡)

private void goToSite() {
    CustomTabsIntent.Builder intentBuilder = new CustomTabsIntent.Builder();
    int toolbarColor = getResources().getColor(R.color.primary);
    intentBuilder.setToolbarColor(toolbarColor);vice_key(), shared().getAccessToken());
    intentBuilder.build().launchUrl(this, Uri.parse("https://example.com/some-page"));
}
Run Code Online (Sandbox Code Playgroud)

在我的服务器上,用户完成一个表单并最终被带到一个页面,该页面应该将它们重定向回应用程序...

server.html

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Redirecting...</title>
<script>
    var redirectToApp = function() {
        setTimeout(function appNotInstalled() {
            window.location.replace("http://example.com/app-not-installed");
        }, 100);
        window.location.replace("mytest://justanexample");
    };
    window.onload = redirectToApp;
</script>
</head>
<body></body>
</html>
Run Code Online (Sandbox Code Playgroud)

但我没有被重定向到应用程序.我怀疑我的服务器代码有问题,因为类似的设置(清单和活动代码)在处理OAuth页面时有效.我的服务器代码有什么问题?我该如何解决这个问题?

编辑

Android端似乎是正确的 - …

redirect android webview google-oauth google-oauth2

3
推荐指数
1
解决办法
2378
查看次数

我们需要隐藏google oauth客户端ID吗?

大家。我最近正在学习OAuth身份验证。我在玩Google的oauth api。在用于服务器端应用程序的Google登录的教程中,第三步-初始化GoogleAuth对象,您需要提供客户端ID来初始化GoogleAuth对象。我只是想知道我们是否需要对客户端ID保密,因为现在任何人都可以通过查看javascript找出客户端ID是什么。

google-api google-oauth2

3
推荐指数
1
解决办法
1237
查看次数

打字稿错误,找不到名称'gapi',转换失败

我试图在我的ionic2应用程序中实现google auth.我需要它在浏览器中工作.所以,我安装:

npm install --save @types/gapi
npm install --save @types/gapi.auth2
Run Code Online (Sandbox Code Playgroud)

有两个警告:

npm WARN可选SKIPPING OPTIONAL DEPENDENCY:fsevents@^1.0.0(node_modules\chokidar \node_modules\fsevents):

npm WARN notsup SKIPPING OPTIONAL DEPENDENCY:不支持的fsevents@1.0.15平台:想要{"os":"darwin","arch":"any"}(当前:{"os":"win32","arch": "64"})

在node_modules文件夹中我有gapi和gapi.auth2文件夹,但我有打字稿错误:找不到名称'gapi',transile失败.

我安装了

npm install typings -g
typings install dt~gapi --global --save
typings install dt~gapi.auth2 --global --save
Run Code Online (Sandbox Code Playgroud)

还是有同样的错误:找不到名字'gapi',transile失败了

我的代码:

auth2: any;

login() {
      gapi.load('auth2', () => {
          this.auth2 = gapi.auth2.init({
             client_id: 'xxxxxxxxx.apps.googleusercontent.com',
             scope: 'https://www.googleapis.com/auth/userinfo.email'
          });
        });
      };
Run Code Online (Sandbox Code Playgroud)

我的package.json:

"@angular/core": "2.2.1",
"ionic-angular": "2.0.0-rc.4",
"ionic-native": "2.2.11",
"rxjs": "5.0.0-beta.12",
"typescript": "2.0.9"
Run Code Online (Sandbox Code Playgroud)

typescript ionic-framework google-oauth2 ionic2 typescript2.0

3
推荐指数
1
解决办法
1639
查看次数

没有Google Dll的情况下如何认证Gmail API

我正在尝试在没有Google Dll的情况下使用Gmail API,并且只想将其用于HTTP请求。如何使用范围进行身份验证和授权(例如使用Google dll创建服务)?

在此处输入图片说明

我收到一个错误

在此处输入图片说明

authentication oauth google-oauth gmail-api google-oauth2

3
推荐指数
1
解决办法
4018
查看次数

Youtube API CommentThreads的范围无效 - java

我是Youtube数据API的新手,我正在尝试在我的计算机上开发一个独立的Java应用程序来解析Youtube视频中的一些评论.CommentThreads-list的示例代码在https://developers.google.com/youtube/v3/docs/commentThreads/list上提供

// Sample Java code for user authorization

import com.google.api.client.auth.oauth2.Credential;
import com.google.api.client.extensions.java6.auth.oauth2.AuthorizationCodeInstalledApp;
import com.google.api.client.extensions.jetty.auth.oauth2.LocalServerReceiver;
import com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeFlow;
import com.google.api.client.googleapis.auth.oauth2.GoogleClientSecrets;
import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;
import com.google.api.client.googleapis.json.GoogleJsonResponseException;
import com.google.api.client.http.HttpTransport;
import com.google.api.client.json.jackson2.JacksonFactory;
import com.google.api.client.json.JsonFactory;
import com.google.api.client.util.store.FileDataStoreFactory;

import com.google.api.services.youtube.YouTubeScopes;
import com.google.api.services.youtube.model.*;
import com.google.api.services.youtube.YouTube;

import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;


public class ApiExample {

/** Application name. */
private static final String APPLICATION_NAME = "API Sample";

/** Directory to store user credentials for this application. */
private static …
Run Code Online (Sandbox Code Playgroud)

java youtube-api oauth-2.0 youtube-data-api google-oauth2

3
推荐指数
1
解决办法
844
查看次数

GoogleActions帐户尚未关联错误

我正在尝试使用(DialogFlow或API.ai和google操作)开发的我的nodejs Google智能助理应用程序实施oauth2身份验证.

所以我按照这个答案.但我总是得到"看起来你的测试oauth帐户尚未链接."错误.当我尝试打开调试选项卡上显示的URL时,它显示500个损坏的URL错误.

Dialogflow fullfillment

index.js

'use strict';

const functions = require('firebase-functions'); // Cloud Functions for Firebase library
const DialogflowApp = require('actions-on-google').DialogflowApp; // Google Assistant helper library

const googleAssistantRequest = 'google'; // Constant to identify Google Assistant requests

exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {
  console.log('Request headers: ' + JSON.stringify(request.headers));
  console.log('Request body: ' + JSON.stringify(request.body));

  // An action is a string used to identify what needs to be done in fulfillment
  let action = request.body.result.action; // https://dialogflow.com/docs/actions-and-parameters

  // Parameters …
Run Code Online (Sandbox Code Playgroud)

node.js google-oauth google-oauth2 actions-on-google dialogflow-es

3
推荐指数
1
解决办法
782
查看次数

Java FX WebView中的Google身份验证

我正在开发一个将google oAuth2身份验证与google-api-client一起使用的应用程序。在webView中,我打开库提供给我的URL以访问accessToken并尝试进行身份验证。一切进展顺利,您需要确认在移动设备上使用帐户的步骤(https://accounts.google.com/signin/challenge/az/2 ...)。我在设备上单击“是”,但是在webView中什么也没有发生。虽然,如果尝试在浏览器中执行相同的操作(使用库提供的url),则会发生使用代码获取accessToken的重定向到url。

有人可以遇到这样的问题,知道如何解决吗?

PS我尝试使用此处描述的方法“ https://github.com/mohamnag/javafx_webview_debugger ” 调试webView ,但没有帮助。

java javafx oauth-2.0 google-oauth google-oauth2

3
推荐指数
1
解决办法
653
查看次数

Google服务器到服务器OAuth错误

我正在尝试将服务器连接到Google的API,但始终收到以下错误。

google.auth.exceptions.RefreshError: ('invalid_scope: h is not a valid audience string.', u'{\n "error" : "invalid_scope",\n "error_description" : "h is not a valid audience string."\n}')

我环顾四周,但似乎无法理解为什么Google提供的代码给了我这个错误。我认为这是我的service.json的问题,但我无法查明它是什么。

这是代码,几乎没有什么变化,这是从Google那里刷下来的。

from google.oauth2 import service_account
import googleapiclient.discovery

SCOPES = 'https://www.googleapis.com/auth/drive.metadata.readonly'
SERVICE_ACCOUNT_FILE = 'service.json'

credentials = service_account.Credentials.from_service_account_file(
    SERVICE_ACCOUNT_FILE, scopes=SCOPES)
drive = googleapiclient.discovery.build('drive', 'v3',     credentials=credentials)
response = drive.files().list(
    pageSize=10,fields="nextPageToken, files(id, name)").execute()

print(response)
Run Code Online (Sandbox Code Playgroud)

我想做的是使用Google API将电子表格自动下载到本地,可能每小时一次,无需用户验证。

google-api google-api-python-client google-oauth2

3
推荐指数
1
解决办法
1178
查看次数

Oauth2登录Facebook,Linkedin和谷歌停止与Devise和Omniauth合作,但仍适用于LinkedIn和Twitter

我有一个站点,配置为使用Devise与Omniauth一起使用多个Oauth2 API,并且一直运行到上周.目前登录Twitter和Github仍然正常运行; 然而,Facebook,LinkedIn和谷歌给我一个错误,指出重定向URI不匹配.错误消息读取:

Facebook的:

错误 - omniauth:(facebook)身份验证失败!invalid_credentials:> OAuth2 ::错误,:{"error":{"message":"验证验证码时出错.请确保您的> redirect_uri与您在OAuth对话框请求中使用的相同","输入":" OAuthException", "代码":100, "fbtrace_id": "XXXXXXXXXX"}}

LinkedIn:

错误 - omniauth:(linkedin)身份验证失败!invalid_credentials:> OAuth2 :: Error,invalid_request:缺少必需参数,包含无效参数值,参数多次.:无法检索访问令牌:appId或重定向uri与授权代码或授权代码过期不匹配{"error_description":"缺少必需参数,包含无效参数值,参数多次.:无法检索访问令牌:appId或重定向uri与授权代码或授权代码过期不匹配","错误":"invalid_request"}

谷歌

错误 - omniauth:(google_oauth2)身份验证失败!invalid_credentials:> OAuth2 :: Error,redirect_uri_mismatch:{"error":"redirect_uri_mismatch"}

我查看了Chrome开发者控制台中针对所有这三个请求发送的请求,并且回调的重定向uri与每个API注册的uri相匹配(自从它工作以来没有更改).

回溯跟踪此错误的挑战是,当我安装新功能时,由于我在最近的集成测试期间直接登录或使用Github登录,因此我不能100%确定这些错误.(大课程学到了!)可能影响这一点的重大变化之一就是我整合了Devise的Traceable扩展,我需要Warden Gem.但是,我删除了Traceable和Warden配置,并将用户模型和配置文件恢复到以前的状态,我遇到了同样的问题.

我通常更愿意提供更多的代码示例,但说实话,我不确定从哪个代码开始.我希望有人遇到类似的问题,并指出正确的方向开始.

要开始,下面是我的Devise初始化程序,注释已删除以缩短

Devise.setup do |config|

  config.mailer_sender = 'no-reply@' + ENV['DOMAIN_NAME']

  config.mailer = 'Devise::Mailer'

  require 'devise/orm/active_record'

  config.case_insensitive_keys = [:email]

  config.strip_whitespace_keys = [:email]

  config.skip_session_storage = [:http_auth]

  config.stretches = Rails.env.test? ? 1 : 10

  config.allow_unconfirmed_access_for = 10.days

  config.reconfirmable = true

  config.confirmation_keys = [:email]

  config.remember_for = 2.weeks

  config.expire_all_remember_me_on_sign_out = true

  config.password_length = 8..72 …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails devise omniauth-facebook omniauth-linkedin google-oauth2

2
推荐指数
1
解决办法
921
查看次数

如何使用Javascript从Google Api检索服务帐户OAuth2令牌?

我需要使用Google Project服务帐户来使用JavaScript访问Google API。为了做到这一点,我需要对Google API服务器进行OAuth2认证。

我知道Google提供了可在节点服务器上使用的库(GAPI),但是我需要一个可以在其他安全JavaScript环境中使用的解决方案。

javascript google-api service-accounts google-oauth2

2
推荐指数
1
解决办法
820
查看次数