Google Sheets Advanced Google Services URL Shortener 403 Error: Forbidden
Google Sheets Advanced Google Services URL Shortener 403 Error: Forbidden
我正在尝试在 Google 表格中创建一个小应用程序来整理我个人 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 云项目,并在项目和 Google sheet 上启用了 URL 缩短器 API。问题是,当我尝试 运行 代码时,我在该行出现错误:var url = UrlShortener.Url.insert({longUrl: 'www.google.com'});
error 403, message:forbidden
当我尝试执行 rangeShort() 函数时。我不知道如何解决这个问题。任何想法将不胜感激!谢谢!
如果您的项目在 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/
Starting March 30, 2018, we will be turning down support for goo.gl URL shortener. Please see this blog post for detailed timelines and alternatives.
为了清楚起见,请注意,来自链接的博客 post:
For developers
Starting May 30, 2018, only projects that have accessed URL Shortener
APIs before today can create short links.
事实证明,就像 Ruben 提到的那样,Google has moved away from their URL shortener。所以经过大量研究和测试,这里是解决方案:
第 1 步
将 Google Cloud Project 迁移到 Firebase 或创建一个新的 Firebase 项目。请参阅步骤 here
第 2 步
创建一个虚拟项目以便为起酥油创建基础 URL。参见 this youtube video
第 3 步
获取 Web API Key from your new Firebase Project(不是您刚创建的应用)
第 4 步
检查屏幕左侧菜单并导航至“增长”->“动态链接”。您应该会看到您创建的新应用程序和应用程序顶部的 URL。这将成为新缩短的 URLs.
的基础
第 5 步
在 Google 表格中的代码生成器内的 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;
}
附加信息
我可以证明@alutz 在这里的回答是他们的代码addition/correction。
将 encodeURIcomponent() 用于输入 url,同时将其分配给 Long Dynamic Link,以防您有多个自定义参数。
"longDynamicLink": "[YOUR APPLICATION URL BASE FROM STEP 4]?link=" + encodeURIcomponent(url),
这让我可以为我的电报机器人传递多个参数,例如 chat_id、文本和 parse_mode。
我正在尝试在 Google 表格中创建一个小应用程序来整理我个人 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 云项目,并在项目和 Google sheet 上启用了 URL 缩短器 API。问题是,当我尝试 运行 代码时,我在该行出现错误:var url = UrlShortener.Url.insert({longUrl: 'www.google.com'});
error 403, message:forbidden
当我尝试执行 rangeShort() 函数时。我不知道如何解决这个问题。任何想法将不胜感激!谢谢!
如果您的项目在 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/
Starting March 30, 2018, we will be turning down support for goo.gl URL shortener. Please see this blog post for detailed timelines and alternatives.
为了清楚起见,请注意,来自链接的博客 post:
For developers
Starting May 30, 2018, only projects that have accessed URL Shortener APIs before today can create short links.
事实证明,就像 Ruben 提到的那样,Google has moved away from their URL shortener。所以经过大量研究和测试,这里是解决方案:
第 1 步
将 Google Cloud Project 迁移到 Firebase 或创建一个新的 Firebase 项目。请参阅步骤 here
第 2 步
创建一个虚拟项目以便为起酥油创建基础 URL。参见 this youtube video
第 3 步
获取 Web API Key from your new Firebase Project(不是您刚创建的应用)
第 4 步
检查屏幕左侧菜单并导航至“增长”->“动态链接”。您应该会看到您创建的新应用程序和应用程序顶部的 URL。这将成为新缩短的 URLs.
的基础第 5 步
在 Google 表格中的代码生成器内的 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;
}
附加信息
我可以证明@alutz 在这里的回答是他们的代码addition/correction。
将 encodeURIcomponent() 用于输入 url,同时将其分配给 Long Dynamic Link,以防您有多个自定义参数。
"longDynamicLink": "[YOUR APPLICATION URL BASE FROM STEP 4]?link=" + encodeURIcomponent(url),
这让我可以为我的电报机器人传递多个参数,例如 chat_id、文本和 parse_mode。