6

前提条件: https://code.google.com/apis/console/で urlshortener の API キーを自分で作成します。

goo.gl の URL を js get APIを介して元の URL に変換するさまざまな方法については、たくさんのドキュメントあります

挿入APIを使用してURL小さなURLに変換し、代わりにaを渡すように少し調整すると{ "longUrl": "https://codepen.io/" }、壊れます。必要に応じてhttp://codepen.io/johan/full/EHbGy#YOUR-API-KEY-HEREで試すか、次の場所で実行してください。

<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>

...エラーで応答するだけです:

{ "code": 400
, "message": "Required"
, "data": 
  [ { "domain": "global"
    , "reason": "required"
    , "message": "Required"
    , "locationType": "parameter"
    , "location": "resource.longUrl"
    }
  ]
, "error": 
  { "code": 400
  , "message": "Required"
  , "data": 
    [ { "domain": "global"
      , "reason": "required"
      , "message": "Required"
      , "locationType": "parameter"
      , "location": "resource.longUrl"
      }
    ]
  }
}

提案?url.insert(いいえ、パラメーターをresource.longUrlキー付きのオブジェクトに変更したり、ラッパー オブジェクトなしで単に URL を渡したりすると、うまく機能しません。)

4

2 に答える 2

6

ドキュメントやエラーメッセージでは明確ではありませんが、リクエストは次のようになり、すべてうまくいくはずです。

var request = gapi.client.urlshortener.url.insert({
    'resource': {'longUrl': 'https://codepen.io/'}
});
于 2012-10-31T22:00:10.100 に答える
1

とにかく、私はすでにjQueryを持っているので、すべてのくだらないものをロードする代わりに、5行のcoffescriptを実行できることが判明したら、これのために厄介なクライアントライブラリを削除すると思います: http://codepen.io/johan/ペン/puJyH

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}"
于 2012-10-31T22:09:28.340 に答える