在Cordova/Phonegap中使用Google API javascript
我正在用Cordova开发一个应用程序,希望将文件保存在谷歌硬盘中 我使用cordova插件googleplus()成功登录Google。但是,我无法将插件返回给我accessToken或idToken,以便我可以与Google javascript API一起使用在Cordova/Phonegap中使用Google API javascript,javascript,cordova,google-drive-api,phonegap-plugins,google-signin,Javascript,Cordova,Google Drive Api,Phonegap Plugins,Google Signin,我正在用Cordova开发一个应用程序,希望将文件保存在谷歌硬盘中 我使用cordova插件googleplus()成功登录Google。但是,我无法将插件返回给我accessToken或idToken,以便我可以与Google javascript API一起使用 window.plugins.googleplus.login( { 'scopes': 'https://www.googleapis.com/auth/drive.file profile',
window.plugins.googleplus.login(
{
'scopes': 'https://www.googleapis.com/auth/drive.file profile',
'offline': true,
'webApiKey': ‘CODE’
},
function (obj) {
$scope.$apply(function() {
$scope.srcImage = obj.imageUrl;
$scope.NomeGoogle = obj.displayName;
});
},
function (msg) {
alert('Erro');
alert('error: ' + msg);
}
);
我尝试使用以下代码,但返回以下错误:
“未捕获gapi.auth2.ExternallyVisibleError:无效的cookiePolicy”
试一试
我设法解决了问题,为什么不从插件中获取serverAuthCode。 有必要在Google开发者控制台上创建2个凭据。第一个必须是Android,这将是插件和第二个应该是一个网络应用程序,这是必要的实现serverAuthCode 代码如下所示
window.plugins.googleplus.login(
{
'scopes': 'https://www.googleapis.com/auth/drive.file profile',
'offline': true,
'webApiKey': ‘REVERSED_CODE of Web App Credential’
},
function (obj) {
$scope.$apply(function() {
$scope.srcImage = obj.imageUrl;
$scope.NomeGoogle = obj.displayName;
});
var data = $.param({
client_id: 'REVERSED_CODE of Web App Credential',
client_secret: 'SECRET_CODE of Web App Credential',
grant_type: 'authorization_code',
code: obj.serverAuthCode
});
var config = {
headers : {
'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;'
}
}
$http.post("https://www.googleapis.com/oauth2/v3/token", data, config).success(function(data, status) {
//data.access_token;
/** from now you can do use of google API **/
})
.error(function(data, status) {
console.log(data);
console.log(status);
});
},
function (msg) {
alert('Erro');
alert('error: ' + msg);
}
);
感谢您的回复rojobo起初我希望跳过对cordova插件googleplus的需求,只需使用cordova/PhoneGap中的
gapi
来处理与Google的身份验证,但它似乎是唯一的选择
在检索access\u令牌后,当我尝试使用gapi
时,发送给我的方向是正确的,但我不断收到Invalid cookiePolicy
错误(这是因为我忽略了下面列出的步骤#2,在使用plugini进行身份验证后,我错误地尝试使用gapi
再次进行身份验证)
有一个步骤(下面提到的第3步)我不清楚。要通过谷歌认证,然后使用Cordova/PhoneGap中的gapi
,这一步起了作用
使用来处理身份验证和访问令牌检索,这里根本不使用gapi
加载gapi客户端库(跳过gapi.client.init()
调用和所有正常的gapi身份验证过程)
将我们从插件获得的访问令牌附加到gapi客户端,然后根据需要进行gapi调用
步骤#3完成了,这意味着我需要添加access\u令牌
gapi.client.setToken({access_token:'abc123456xyz'});
一旦访问令牌连接到gapi客户端,我就可以在Cordova/Phonegap中使用gapi:
// Load the YouTube API.
gapi.client.load('youtube', 'v3', function() {
// Do stuff...
};
使用typescript在angular2中应该做什么?$.param是Jquery方法,但angular2不支持Jquery?
gapi.client.setToken({access_token:'abc123456xyz'});
// Load the YouTube API.
gapi.client.load('youtube', 'v3', function() {
// Do stuff...
};