Javascript 如何在js中缩短url?

Javascript 如何在js中缩短url?,javascript,goo.gl,google-client,Javascript,Goo.gl,Google Client,Prereq:在以下位置为urlshortener创建一个API密钥 有很多文档提供了通过JSAPI将goo.gl url转换为原始url的各种方法,例如:,和——至少第一种方法是有效的 如果我稍微调整一下,使用api将url转换为一个小url,传递一个{“longUrl”:https://codepen.io/“}相反,它会断开。如果您愿意,请在尝试,或在某个地方运行此功能: <script> var api_key = 'YOUR-API-KEY-HERE'; function

Prereq:在以下位置为urlshortener创建一个API密钥

有很多文档提供了通过JSAPI将goo.gl url转换为原始url的各种方法,例如:,和——至少第一种方法是有效的

如果我稍微调整一下,使用api将url转换为一个小url,传递一个
{“longUrl”:https://codepen.io/“}
相反,它会断开。如果您愿意,请在尝试,或在某个地方运行此功能:

<script>
var api_key = 'YOUR-API-KEY-HERE';

function makeRequest() {
  var request = gapi.client.urlshortener.url.insert({
    'longUrl': 'https://codepen.io/'
  });
  request.execute(function(response) {
    alert(JSON.stringify(window.got = response));
  });
}

function load() {
  gapi.client.setApiKey(api_key);
  gapi.client.load('urlshortener', 'v1', makeRequest);
}
</script>
<script src="https://apis.google.com/js/client.js?onload=load"></script>

建议?(不,如果您更改
url,效果不会更好。请将
参数插入到具有
资源.longUrl
键的对象,或者只传递url而不传递包装器对象。)

在文档或错误消息中不是非常清楚,但您的请求应该如下所示,一切都会很好:

var request = gapi.client.urlshortener.url.insert({
    'resource': {'longUrl': 'https://codepen.io/'}
});

我想我会放弃这个凌乱的客户端库,当我可以用五行coffescript来完成它,而不是加载所有那些粗制滥造的东西时,因为我已经有了jQuery:


谢谢维护好的文档就像制作好的API一样困难。@ecmanaut什么,你是说链接到
URL资源的示例
没有帮助?对于开发者来说,google.com有很多机会与有能力的人(以及谷歌网站管理员工具)一起改进它的404。注意:这个api在11月15日之前运行良好,但是由于404错误导致CORS OPTIONS请求失败,因此实际发布无法进行。我已经在和文档网站上提交了错误报告。google js客户端仍然可以工作,因为它向后弯曲以创建一个隐藏的www.googleapis.com iframe,它代表您的页面执行非CORS rpc ajax请求。
var request = gapi.client.urlshortener.url.insert({
    'resource': {'longUrl': 'https://codepen.io/'}
});
api = 'https://www.googleapis.com/urlshortener/v1/url'
api += "?key=#{key}"  if key = location.search.slice 1

$.ajax
  url: api
  type: 'POST'
  data: JSON.stringify(longUrl: url)
  contentType: 'application/json'
  success: (got) ->
    alert "shortened url: #{got.id}"