我正在尝试在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()函数时。我不知道该怎么解决这个问题。如果您有任何想法,将不胜感激!谢谢!
发布于 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;
}
更多信息
发布于 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的项目才能创建短链接。
发布于 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。
https://stackoverflow.com/questions/50769197
复制相似问题