Google Oauth 2.0代码 - 获取固定Oauth凭据

时间:2014-07-22 14:39:30

标签: api oauth oauth-2.0 google-oauth google-cloud-sql

我想从GAS脚本连接到Google云端SQL API。

我遇到的困难是我从API控制台获取了我的GAS脚本的Oauth代码,该代码只运行一次而不是每天运行。第二次使用相同的Oauth代码运行脚本时会出现错误信息: "返回代码401"

示例脚本:

 var url = "https://www.googleapis.com/sql/v1beta3/projects/XXXXXXX/instances/XXXXXXXX/operations/XXXXXXXXXXX";
  var headers = {"Accept":"application/json", 
                 "Content-Type":"application/json", 
                 "Authorization":"Bearer XXXXXXXXX"
                   };
  var options = {"method":"GET",
                 "headers": headers,
                };
  var response = UrlFetchApp.fetch(url,options);
  Logger.log(response); 

屏幕截图给出了我从Oauth获取唯一密钥的位置。

https://drive.google.com/a/ssomens.com/?tab=mo#folders/0B_f0d7mdbV_UYWh4cDBEdndSZE0

在哪里获得正确的Oauth密钥,这样我就不需要每天继续提供新的令牌,我需要一个FIXED令牌,以便我的脚本每天都可以运行,无任何问题。我查了很多SITES和文档,没用。

Plz欢迎任何帮助,我在过去一周内陷入困境。

事先提前。

1 个答案:

答案 0 :(得分:0)

Oauth2稍微复杂一点,每次都可以放入标题中。有一个多步骤流程,您可以将用户发送给Google的服务以获取您可以在API调用中发送的令牌,然后您可以代表该用户拨打电话。在https://developers.google.com/apps-script/guides/services/external#making_requests_to_services_with_oauth记录了从GAS进行此类OAuth调用。

另一种选择是服务帐户'在哪里创建可以访问Cloud SQL实例的服务帐户,在应用程序中保存一些凭据,然后使用它们。似乎从GAS执行此操作很困难,因为您必须实现oauth流本身。请参阅https://developers.google.com/accounts/docs/OAuth2#serviceaccount