首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Google Sheets高级Google Services URL Shortener 403错误:已禁用

Google Sheets高级Google Services URL Shortener 403错误:已禁用
EN

Stack Overflow用户
提问于 2018-06-08 00:15:06
回答 3查看 2K关注 0票数 0

我正在尝试在Google Sheets中创建一个小应用程序来排序我个人google帐户上的URL。我使用了以下代码,它是我在这里找到的:Google Sheets Function to get a shortened URL (from Bit.ly or goo.gl etc.)

function onOpen() {
  SpreadsheetApp.getUi()
    .createMenu("Shorten")
    .addItem("Go !!","rangeShort")
    .addToUi()  
}

function rangeShort() {
  var range = SpreadsheetApp.getActiveRange(), data = range.getValues();
  var output = [];
  for(var i = 0, iLen = data.length; i < iLen; i++) {
    //var url = UrlShortener.Url.insert({longUrl: data[i][0]});
    var url = UrlShortener.Url.insert({longUrl: 'www.google.com'});
    output.push([url.id]);
  }
  range.offset(0,1).setValues(output);
}

我创建了一个新的Google Cloud项目,并在该项目和Google工作表上启用了URL shortener API。问题是,当我尝试运行代码时,我得到一行错误:var url = UrlShortener.Url.insert({longUrl: 'www.google.com'});

错误403,消息:禁止

当我尝试执行rangeShort()函数时。我不知道该怎么解决这个问题。如果您有任何想法,将不胜感激!谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-06-08 03:01:43

事实证明,就像鲁本提到的那样,Google has moved away from their URL shortener。因此,经过大量的研究和测试,以下是解决方案:

第一步

将Google Cloud Project迁移到Firebase或创建一个新的Firebase项目。请参阅步骤here

第二步

创建一个虚拟项目,以便为缩写创建一个基本URL。请参阅this youtube video

第三步

获取Web API Key from your new Firebase Project (不是您刚刚创建的应用程序)

第四步

检查屏幕上的左侧菜单,然后导航到Grow>Dynamic Links。您应该会看到您创建的新应用程序和应用程序顶部的URL。这将成为新的缩短URL的基础。

第五步

在Google Sheets中的代码构建器中创建Google Apps脚本中的代码。下面是为我工作的代码(我将url传入此函数)(此代码基于找到的答案here):

function api_call(url){
  var req='https://firebasedynamiclinks.googleapis.com/v1/shortLinks?key=[YOUR PROJECT WEB API KEY FROM STEP 3]';
  var formData = {
    "longDynamicLink": "[YOUR APPLICATION URL BASE FROM STEP 4]?link=" + url,
    "suffix" : {
      "option" : "UNGUESSABLE" 
    }
  };
  var options = {
    'method': 'post',
    'contentType': 'application/json',
    'payload': JSON.stringify(formData)

  };

  var response = UrlFetchApp.fetch(req, options);
  var res=JSON.parse(response);

  return res.shortLink;
}

更多信息

  1. Documentation on Creating Dynamic Links in Firebase
  2. Documentation on using UrlFetchApp() in Google Apps Script
票数 4
EN

Stack Overflow用户

发布于 2018-06-08 00:45:46

如果您的项目在2018年3月30日之前使用了url缩短服务

而不是

www.google.com

使用

https://www.google.com

参考:https://developers.google.com/url-shortener/v1/url/insert

但如果您的项目是在2018年3月30日或之后创建的

来自https://developers.google.com/url-shortener/v1/

从2018年3月30日开始,我们将拒绝支持goo.gl URL shortener。有关详细的时间表和替代方案,请参阅此blog post

为了清楚起见,请注意,在链接的博客帖子中:

面向开发人员的

从2018年5月30日开始,只有在今天之前访问过URL Shortener API的项目才能创建短链接。

票数 1
EN

Stack Overflow用户

发布于 2021-03-31 22:56:59

我可以在这里证明@alutz的答案,只需对他们的代码进行一些小的添加/更正。

如果您有多个自定义参数,请使用encodeURIcomponent()作为输入url,同时将其分配给长动态链接。

"longDynamicLink": "[YOUR APPLICATION URL BASE FROM STEP 4]?link=" + encodeURIcomponent(url),

这使我可以为我的电报机器人传递多个参数,如chat_id、text和parse_mode。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50769197

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档