2016-07-01 4 views
1

私はRuby on Railsの開発者で、podio.com APIコールをいくつか行ってGoに入社しています。これまでのところすべてがスムーズに進みましたが、私は巨大なstackoverflowについて何の答えも見つけられない(おそらく私は何を検索するのか分からないので)小さな愚かな問題にぶつかりました。Podio AuthTokenをpodio-goクライアントに直接渡す方法

コンテキストのビット:私たちのレールアプリはすでにすべての必要なクライアント情報(auth_token、refresh_token、...)を持っているので、その情報を再度要求する必要はありませんすべてのpodio oAuthサーバーフローを処理しています。

代わりに私が直接そう

// json data coming from rails 
json_auth_token := "{\"access_token\":\"...\",\"refresh_token\":\"...\",\"token_type\":\"\",\"expires_in\":28800,\"transfer_token\":\"\"}" 

// creating a AuthToken object 
authToken := podio.AuthToken{} 
json.Unmarshal([]byte(json_auth_token), &authToken) 

// so far so good, but when doing 
client := podio.NewClient(authToken) 

のようなクライアントオブジェクトを作成したい

podio.AuthWithAuthCode(clientId, clientSecret, authCode, redirectUri) 

をやって、私は

cannot use authToken (type podio.AuthToken) as type *podio.AuthToken in argument to podio.NewClient 

エラーを取得する誰かがこれで私を助けることができますか?必ずしもPodio関連ではありません。 More go related

答えて

2

現在、変数authTokenのタイプはpodio.AuthTokenです。つまり、ポインタではなく単に構造体です。 podio.NewClient関数は、型が*podio.AuthTokenpodio.AuthTokenへのポインタ)の引数を必要とするため、コンパイラエラーが発生します。この問題を解決する最も簡単な方法は、単に服従authTokenそうのようになります:

client := podio.NewClient(&authToken) 

代わりにあなたが*podio.AuthTokenauthTokenの種類を変更することができます。

authToken := &podio.AuthToken{} 
json.Unmarshal([]byte(json_auth_token), authToken) 
client := podio.NewClient(authToken) 

少し無関係な(そして多分あなたは簡潔にするため、これを省略します)、おそらくjson.Unmarshalから返されたエラーを確認する必要があります:

err := json.Unmarshal([]byte(json_auth_token), authToken) 
if err != nil { 
    // handle error 
} 
+0

魅力的な作品です!アンパサンドは私を夢中にさせた。超迅速な返信アンドレアスありがとう。感謝します! – pjmuller

+0

実際、jsonを解析するときにエラーをキャッチしています。しかし、サンプルコードをもっとシンプルにするためにそれを投稿しませんでした。 – pjmuller

関連する問題