質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

Google App Engine

Google App Engineは、Googleの管理するデータセンター上でウェブアプリケーションの開発が可能なクラウドコンピュータ技術です。Java、Python、Go用にSDKが用意されています。

Q&A

解決済

1回答

2373閲覧

golang echo + gae(google app engine) のsdk でのエラー

goike

総合スコア7

Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

Google App Engine

Google App Engineは、Googleの管理するデータセンター上でウェブアプリケーションの開発が可能なクラウドコンピュータ技術です。Java、Python、Go用にSDKが用意されています。

0グッド

0クリップ

投稿2017/12/21 00:52

編集2017/12/21 00:55

###前提・実現したいこと
勉強を兼ねてgolangのecho(v3)とgae(go1.8)でspotify-api(zmb3/spotify)を使ったアプリケーション作成を試みています
sdkを使いlocalで実行したのですが、500番エラーがでてしまいます。
エラーの原因がわからないので教えていただきたいです。
なお、sdkを利用しない場合は動作しています。

###発生している問題・エラーメッセージ
500番エラーがでます。エラーメッセージはありません。

echoのcookbook(gae), zmb3/spotifyのsample を参考にしています。
どちらもほぼサンプルと同じです。
gae対応としての変更は、
context.Background()-> appengine.NewContext(c.Request())
になります。
中を追っていき、net/httpのClient.Get()がうまくいかないということだけは確認できました。

以下該当箇所になります

import ( "log" "net/http" "os" "github.com/labstack/echo" "github.com/zmb3/spotify" "golang.org/x/oauth2/clientcredentials" "google.golang.org/appengine" ) func init() { e.GET("/api/spotify/albums", getAlbums) } func getAlbums(c echo.Context) error {  config := &clientcredentials.Config{ ClientID: os.Getenv("SPOTIFY_ID"), ClientSecret: os.Getenv("SPOTIFY_SECRET"), TokenURL: spotify.TokenURL, } ctx := appengine.NewContext(c.Request()) token, err := config.Token(ctx) if err != nil { log.Fatalf("couldn't get token: %v", err) }| client := spotify.Authenticator{}.NewClient(token) artist := "artist_name" results, err := client.Search(artist, spotify.SearchTypeAlbum) //ここでコケる if err != nil { log.Fatalln(err) } ~~以下略~~

###補足情報(言語/FW/ツール等のバージョンなど)
他に情報が必要でしたらここに追加していきます

わかる方いましたら教えていただけると幸いです。
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

AppEngine から HTTP リクエストを送信する場合、urlfetch というパッケージを使って得られる http.Client を使う必要があります。

Document: https://godoc.org/google.golang.org/appengine/urlfetch

例:

go

1httpClient := urlfetch.Client(ctx) 2

上記のように、得られたクライアントを Spotify のライブラリに設定する方法は、使いたいライブラリ次第です。

軽く見た限りだと github.com/zmb3/spotify はそれっぽい API を提供していないように見えましたので、もし方法がないのであれば、他のライブラリを検討されるとよいと思います。

投稿2017/12/21 05:01

najeira

総合スコア28

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

goike

2017/12/22 16:15

urlfetch調べたらいくつか参考になりそうなものがでてきました。ありがとうございます。 全く知りませんでした。。 確かにgithub.com/zmb3/spotifyでは難しそうだったので、別のものを利用するか自分で作ろうと思います。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問