如何同时使用2个Google API? 我有两个客户端ID,但我似乎无法让我的脚本请求两个apis的许可。
我需要在Var Client ID或其他任何内容中更改以获得2个API同时工作?这就是我尝试过的:
var CLIENT_ID = ['client ID 1', 'Client ID 2'] ;
var CLIENT_ID = 'client ID 1', 'Client ID 2' ;
var CLIENT_ID = 'client ID 1, Client ID 2' ;
此外,我还需要更改此功能:
function initClient() {
gapi.client.init({
discoveryDocs: DISCOVERY_DOCS,
clientId:CLIENT_ID,
scope: SCOPES
我正在尝试在同一个脚本中同时使用Drive API和Gmail API,这怎么可能?
答案 0 :(得分:0)
要使用单个客户端ID呼叫多个Google API,只需添加应用所需的范围。
初始范围:
auth2 = gapi.auth2.init({
client_id: 'CLIENT_ID.apps.googleusercontent.com',
cookiepolicy: 'single_host_origin', /** Default value **/
scope: 'profile' }); /** Base scope **/
请求其他范围:
var options = new gapi.auth2.SigninOptionsBuilder(
{'scope': 'email https://www.googleapis.com/auth/drive'});
googleUser = auth2.currentUser.get();
googleUser.grant(options).then(
function(success){
console.log(JSON.stringify({message: "success", value: success}));
},
function(fail){
alert(JSON.stringify({message: "fail", value: fail}));
});
正如document中所述,通常最佳做法是在需要访问时,而不是预先请求范围。例如,想要支持购买的应用不应在用户按下“购买”按钮之前请求Google电子钱包访问权限;见Incremental authorization。无需为应用程序创建多个clientID来访问多个Google API。
在您的情况下,一旦用户访问API的方法,您的初始范围将是两者之一,然后请求额外的范围。另外,请检查OAuth 2.0 Playground以查看范围的工作原理。