Purchase Status apiを利用した購入情報の取得について

1,052 views
Skip to first unread message

木村章人

unread,
Feb 26, 2014, 1:42:14 AM2/26/14
to android-...@googlegroups.com
はじめまして、木村と申します。

このたびIn-app Billingのsubscriptionの商品情報をバックエンドサーバから問い合わせができる機能の作成を行っております。
その際にエラーが発生しているため、皆様のお力をお借りしたいと思っております。
エラーについて説明させていただきます。(今回はテストのしやすいinappの方で購入確認を行っていますので、それに合わせたパラメータの設定になっております。)

1.Google Developer Console上でプロジェクトの登録を行う
2.Client IDやClientsecretを用いて refreshtokenとaccesstokenを生成
3.そのaccesstokenを用いて「https://www.googleapis.com/androidpublisher/v1.1/applications/jp.co.yahoo.premium/inapp/buy/purchases/{purchase_token}?{accesstoken=}」にアクセスする
4.ターミナル上でcurlでアクセスすると購入期限などの購入情報が取得できる。
5.バックエンドサーバからPHP上でcurlでアクセスすると、以下のような結果になる
{
  "error": {
   "errors": [
    {
     "domain": "global",
     "reason": "required",
     "message": "Login Required",
     "locationType": "header",
     "location": "Authorization"
    }
   ],
   "code": 401,
   "message": "Login Required"
  }
}

以上のようなエラーが発生しております。
ターミナル上にてcurlで叩くと購入情報を取得できるのですが、PHP上からアクセスするとエラーが発生してしまいます。

どこか原因が分かる方がいらっしゃるならご教示頂けると幸いです。
よろしくお願いいたします。

Keiji ARIYAMA

unread,
Feb 27, 2014, 7:19:46 AM2/27/14
to android-...@googlegroups.com
有山と申します。

"Login Required"と言うことは、そのままAuthorizationヘッダを送っていな
い、正しくないのではないでしょうか。

コマンドラインとPHPでCurlの挙動が違うことについてはよくわかりません。
ごめんなさい。ただ、エラーメッセージを見る限りは認証情報が正しく送られて
いないと、そういうことなんだと思います。

僕としては、コマンドライン上のCurlでアクセスして(GETでAccessToken送っ
てます?)、情報が取得できるのが不思議だったりしますけど。。。

--
Keiji,
ml_an...@c-lis.co.jp

(2/26/14, 3:42 PM), 木村章人 wrote:
> はじめまして、木村と申します。
>
> このたびIn-app Billingのsubscriptionの商品情報をバックエンドサーバから問
> い合わせができる機能の作成を行っております。
> その際にエラーが発生しているため、皆様のお力をお借りしたいと思っております。
> エラーについて説明させていただきます。(今回はテストのしやすいinappの方
> で購入確認を行っていますので、それに合わせたパラメータの設定になっており
> ます。)
>
> 1.Google Developer Console上でプロジェクトの登録を行う
> 2.Client IDやClientsecretを用いて refreshtokenとaccesstokenを生成
> 3.そのaccesstokenを用いて「https://www.googleapis.com/androidpublisher
> /v1.1/applications/jp.co.yahoo.premium/inapp/buy/purchases/{purchase_token}?{accesstoken=}
> <https://www.googleapis.com/androidpublisher/v1.1/applications
> /jp.co.yahoo.premium/inapp/buy/purchases
> /%7Bpurchase_token%7D?%7Baccesstoken=%7D>」にアクセスする
> 4.ターミナル上でcurlでアクセスすると購入期限などの購入情報が取得できる。
> 5.バックエンドサーバからPHP上でcurlでアクセスすると、以下のような結果になる
> {
> "error": {
> "errors": [
> {
> "domain": "global",
> "reason": "required",
> "message": "Login Required",
> "locationType": "header",
> "location": "Authorization"
> }
> ],
> "code": 401,
> "message": "Login Required"
> }
> }
>
> 以上のようなエラーが発生しております。
> ターミナル上にてcurlで叩くと購入情報を取得できるのですが、PHP上からアク
> セスするとエラーが発生してしまいます。
>
> どこか原因が分かる方がいらっしゃるならご教示頂けると幸いです。
> よろしくお願いいたします。
>
> --
> このメールは Google グループのグループ「Android-SDK-Japan」の登録者に送
> られています。
> このグループから退会し、メールの受信を停止するには、android-sdk-
> japan+un...@googlegroups.com にメールを送信します。
> このグループに投稿するには、android-...@googlegroups.com にメール
> を送信してください。
> http://groups.google.com/group/android-sdk-japan からこのグループにアク
> セスしてください。
> その他のオプションについては、https://groups.google.com/groups/opt_out
> にアクセスしてください。

kimura akihitto

unread,
Mar 11, 2014, 4:34:38 AM3/11/14
to android-...@googlegroups.com
有山様

返信ありがとうございます。木村です。

パラメータをPOSTで送る際にaccess_token={.....}と指定するところをaccesstoken={....}としていたため、
エラーが発生していたようです。

私のタイプミスのせいだったのですが、ご指摘いただけたおかげで発見することができました。
ありがとうございました。

2014年2月27日木曜日 21時19分46秒 UTC+9 C-LIS Keiji Ariyama:
> このグループに投稿するには、android-sdk-ja...@googlegroups.com にメール
Reply all
Reply to author
Forward
0 new messages