有没有办法通过脚本,以便能够在谷歌开发者控制台先进的谷歌服务?(Is there a way to

2019-10-22 04:06发布

再次!
我创建了一个嵌入在使用UrlShortener.Url.insert功能的电子表格的脚本。 我的客户希望能够让这个电子表格的新情况与同事分享。 我实现了这个功能,但是当我开始测试新的实例它原来,我必须使URL缩短API在我的谷歌开发者控制台。
我不知道如果我可以用我的脚本绕过这个体力劳动还是只有我能做的就是提供客户端的指令怎么办呢?

更新:桑迪好recomends使用UrlFetch.fetch()来获取短链接,但这样的代码:

function test_short_link() {
  var options =
     {
       'longUrl': 'http://www.google.com/',
       'muteHttpExceptions': true
     };

   var result = UrlFetchApp.fetch("https://www.googleapis.com/urlshortener/v1/url",
       options);
   Logger.log(result);
}

返回此:

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "required",
    "message": "Required parameter: shortUrl",
    "locationType": "parameter",
    "location": "shortUrl"
   }
  ],
  "code": 400,
  "message": "Required parameter: shortUrl"
 }
}

貌似这个话题

而这个代码

function test_short_link() {
  var options =
     {
       'longUrl': 'http://www.google.com/',
       'muteHttpExceptions': true,
       'method':'post'

     };
   var result = UrlFetchApp.fetch("https://www.googleapis.com/urlshortener/v1/url",
       options);
   Logger.log(result);
}

给我们带来:

{
 "error": {
  "errors": [
   {
    "domain": "usageLimits",
    "reason": "userRateLimitExceededUnreg",
    "message": "User Rate Limit Exceeded. Please sign up",
    "extendedHelp": "https://code.google.com/apis/console"
   }
  ],
  "code": 403,
  "message": "User Rate Limit Exceeded. Please sign up"
 }
}

Answer 1:

编辑:没有没有办法通过网站本身身边的任何方法来访问谷歌开发控制台。

下面是UrlFetchApp做到这一点的方法。 您需要将有效载荷参数的选项,而不是在UrlFetchApp选项对象。 您还需要通过当前用户的OAuth令牌的头。 当然,你需要修改这个代码,因为它硬编码的longUrl并没有错误检查。

function ShortenUrl(){
var url = "https://www.googleapis.com/urlshortener/v1/url"

var payload = {"longUrl":"www.google.com"};

var parameters = { method : 'post',
                    headers : {'Authorization': 'Bearer '+ScriptApp.getOAuthToken()},
                    payload:JSON.stringify(payload),
                    contentType:'application/json',                    
                    muteHttpExceptions:true};

  var response = UrlFetchApp.fetch(url, parameters);
  Logger.log(response);

}


Answer 2:

这可以完美地完成。 试试这个代码:

function ShortenUrl(){
var url = 'https://www.googleapis.com/urlshortener/v1/url';
var apiKey = 'AIzBlNS-3HZdxKgwj-x30';
url += '?key=' + apiKey;
var payload = {"longUrl":"www.google.com"};

var parameters = { method : 'post',
                payload:JSON.stringify(payload),
                contentType:'application/json',                    
                muteHttpExceptions:true};

var response = UrlFetchApp.fetch(url, parameters);
Logger.log(response);
}


文章来源: Is there a way to enable advanced google services in the Google Developers Console by script?