我需要打开自定义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端似乎是正确的 - …
大家。我最近正在学习OAuth身份验证。我在玩Google的oauth api。在用于服务器端应用程序的Google登录的教程中,第三步-初始化GoogleAuth对象,您需要提供客户端ID来初始化GoogleAuth对象。我只是想知道我们是否需要对客户端ID保密,因为现在任何人都可以通过查看javascript找出客户端ID是什么。
我试图在我的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
我是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) 我正在尝试使用(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
我正在开发一个将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 ,但没有帮助。
我正在尝试将服务器连接到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将电子表格自动下载到本地,可能每小时一次,无需用户验证。
我有一个站点,配置为使用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
我需要使用Google Project服务帐户来使用JavaScript访问Google API。为了做到这一点,我需要对Google API服务器进行OAuth2认证。
我知道Google提供了可在节点服务器上使用的库(GAPI),但是我需要一个可以在其他安全JavaScript环境中使用的解决方案。
google-oauth2 ×10
google-oauth ×4
google-api ×3
java ×2
oauth-2.0 ×2
android ×1
devise ×1
gmail-api ×1
ionic2 ×1
javafx ×1
javascript ×1
node.js ×1
oauth ×1
redirect ×1
typescript ×1
webview ×1
youtube-api ×1