gae/golang で外部API呼び出しするには、appengine/urlfetchを使う。

http://code.google.com/intl/ja/appengine/docs/go/urlfetch/reference.html

gae/golangで、twitter apiを呼び出すコードを作って、開発環境では問題なかったので、デプロイしたら、外部API呼び出しで、下のメッセージが出た。

Get http://api.twitter.com/1/trends/1118370.json: operation not permitted

いろいろ試した結果、本家ドキュメントに書いてあった方法を使ったらできた。(最初からドキュメントよむべき。とはいえ、pythonの時とかは、そんな心配せずに外部アクセスできた(と思う)んだから、もうちょっと目立つところに書いといて欲しかったと思った)

http://code.google.com/intl/ja/appengine/docs/go/urlfetch/overview.html

App Engine applications can communicate with other applications or access other resources on the web by fetching URLs. An app can use the URL Fetch service to issue HTTP and HTTPS requests and receive responses. The URL Fetch service uses Google’s network infrastructure for efficiency and scaling purposes.

        //client := &http.Client{}
        client := urlfetch.Client(c)

修正したことは、httpclientを作るときに、appengine/urlfetch から取得するように変更しただけでした。

One Comment

  • Thanks alot – your answer solved all my problems after seevral days struggling

Leave a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.