简短的回答
按照https://github.com/googlesamples/apps-script-oauth2中的说明进行操作
解释
我尝试使用Picasa 服务库,但身份验证过程未完成,因此我获取了库源代码,适用于使用来自https://github.com/googlesamples/apps-script-oauth2的 OAuth 文件。我将结果发布到https://gist.github.com/rubenrivera/97cf176b8787d04e10929adf6aa7ae5f
遵循的步骤
- 从 Google Developers Console 获得了我自己的 CLIENT_ID 和 CLIENT_SECRET
- 添加了 SERVICE、SERVICE_URL、SCOPE 作为全局变量,以便以后可以轻松地将 OAuth2 与其他服务一起使用。
//使用 Picasa 网络相册 API 的全局变量
var SERVICE_ = 'lh2';
var SCOPE_ = 'http://picasaweb.google.com/data/';
var SERVICE_URL_ = 'https://picasaweb.google.com/data/feed/api/user/default';
// 项目的全局变量。从 Google Developers Console 获得
var CLIENT_ID_ = '...';
var CLIENT_SECRET_ = '...';
注意:步骤 3 和 4 是可选的。另一种方法是从相关库中添加它们
- 将 OAuth2 脚本文件替换为来自https://github.com/googlesamples/apps-script-oauth2/tree/master/dist/OAuth2.gs的同名文件。
- 从https://github.com/googlesamples/apps-script-oauth2/blob/master/dist/Underscore.gs添加了下划线文件。
- 运行以下代码获取重定向 URI 并在 Google Developers Console 中注册
/**
* 记录 redict URI 以在 Google Developers Console 中注册。
*/
函数 logRedirectUri() {
var service = getService();
Logger.log(service.getRedirectUri());
}
- 从 Google Developer Console 获取 CLIENT_I 和 CLIENT_SECRET
- 运行以下代码对脚本进行授权。获取显示的 URL 并从新选项卡运行它。
/**
* 授权并向 API 发出请求。
*/
函数运行(){
var service = getService();
if (service.hasAccess()) {
var url = SERVICE_URL;
var response = UrlFetchApp.fetch(url, {
标题:{
授权:'Bearer' + service.getAccessToken()
}
});
尝试 {
var 结果 = JSON.parse(response.getContentText());
Logger.log(JSON.stringify(result, null, 2));
} 捕捉(e){
var 结果 = Xml.parse(response.getContentText(),true);
Logger.log(result.toXmlString());
}
} 别的 {
var authenticationUrl = service.getAuthorizationUrl();
Logger.log('打开以下 URL 并重新运行脚本:%s',
授权网址);
}
}
- 注释掉原来的 googleOAuth_()
- 添加了以下代码函数 googleOAuth_() { var service = getService(); return { headers: { Authorization: 'Bearer' + service.getAccessToken() } } }