2017-04-27 3 views
2

での詳細は、私は私のモバイルアプリでアプリ内課金を実装しました。自動更新サブスクリプションを使用します。私は、アプリケーションを介してサブスクリプションの有効期限を確認したい。 Purchases.subscriptions:getはどのようにPurchases.subscriptionsを取得する:アンドロイド

ドキュメントは、いくつかの承認が必要であることを示しています。私は、サブスクリプションの詳細を確認するには、このリンクを発見しました。私は試しましたが、私は結果を得ることができません。私は、クライアントのsecret.jsonファイルを得たが、それは、クライアントの秘密のIDが含まれていません。だから私はサブスクリプションの有効期限を取得するのを助けてください。

答えて

0

私の答えは遅れているが、多分それは他の誰かに役立ちます。 Server side authorization with Google Play Developer API?

そして、これらは、あなたがそれを手動で行うだろう手順は次のとおりです:次のリンクでGoogleのAPIであなたのOAuth2の構成で

1)を作成した資格情報:https://developers.google.com/mobile/add?platform=android&cntapi=signin&cnturl=https:%2F%2Fdevelopers.google.com%2Fidentity%2Fsign-in%2Fandroid%2Fsign-in%3Fconfigured%3Dtrue&cntlbl=Continue%20Adding%20Sign-In

2は、ここに私の答えを参照してください。 )デベロッパーAPIコンソールに移動します。 Credentials

3. Google Playデベロッパーコンソール - >すべてのアプリ - >設定 - > APIアクセスに移動して、定義したプロジェクトをリンクしてリンクします。開発APIコンソールで(ステップ2、黒バー左上)。 (Google Playでプロジェクトをリンクできない場合は、GoogleデベロッパーAPIとGoogle Playデベロッパーコンソールで異なるGoogleアカウントを使用しています。

4.) コールバックURLhttps://accounts.google.com/o/oauth2/auth?scope=https://www.googleapis.com/auth/androidpublisher&response_type=code&access_type=offline&redirect_uri=http://www.yourdomain.com/oauth2callback&client_id=[WEBAPPLICATION_ID_FROM_ABOVE.apps.googleusercontent.com]
My/oauth2callbackスクリプトは、簡単なPHPスクリプトです。 (これは、生産安全ではありませんそれはちょうどイラストのためです。):

oauth2callback.php

<?php 
print_r($_REQUEST); 
?> 

5)あなたは上からURLを起動した後は、Googleアカウントを尋ねられますAPIにアクセスする余裕がある。あなたが確認した後、あなたのコールバックURLにリダイレクトされ、このようになり、結果取得されます。)

4/vPv_eYX-az6YucwdpBzATpJEu8129gN9aYsUIMI3qgQ

6.トークンのOAuth2のアクセスを取得し、トークンをリフレッシュ¹

grant_type=authorization_code 
code=4/vPv_eYX-az6YucwdpBzATpJEu8129gN9aYsUIMI3qgQ 
client_id=[YOUR_WEBAPPLICATIONID.apps.googleusercontent.com] 
client_secret=[YOUR CLIENT SECRET OF THIS WEBAPPLICATION ID] 
redirect_uri=http://www.yourdomain.com/oauth2callback 

(クライアントsecre:次のヘッダーとhttps://accounts.google.com/o/oauth2/tokenPOST要求を呼び出すことにより、アクセストークンがある)

{ 
    "access_token": "ya29.GdsCBbnM584k3SUzoxDgIdaY26pEM_p_AdhkIkFq3tsai8U7x8DuFKq3WEF7KquxkdLO89KHpuUFdJOgkhpGbGyDfxkD32bK1ncnsu2IkA0e_5ZayOEr86u4A1IN", 
    "expires_in": 3600, 
    "refresh_token": "1/U5HF1m0nHQwZaF2-X35f_xyFaSOofdw3SEubnkkYUQ0", 
    "token_type": "Bearer" 
} 

7:あなたがステップ2からデベロッパーコンソールでのOAuth2クライアントIDのWebクライアントのIDをクリックしたとき、tが、結果は次のようになります

)見つけることができます例えば、Googleの開発者向けのAPIリクエストを呼び出すために必要な:https://www.googleapis.com/androidpublisher/v2/applications/[packageName]/purchases/subscriptions/subscriptionId/tokens/[purchaseToken]?access_token=ya29.GdsCBbnM584k3SUzoxDgIdaY26pEM_p_AdhkIkFq3tsai8U7x8DuFKq3WEF7KquxkdLO89KHpuUFdJOgkhpGbGyDfxkD32bK1ncnsu2IkA0e_5ZayOEr86u4A1IN

8)アクセストークンは非常に迅速に期限が切れます。リフレッシュを使用すると、次のURLとヘッダを使用して、新しいアクセストークンを取得することができます POSThttps://accounts.google.com/o/oauth2/token

grant_type=refresh_token 
client_secret=[YOUR CLIENT SECRET] 
refresh_token=1/U5HF1m0nHQwZaF2-X35f_xyFaSOofdw3SEubnkkYUQ0 
client_id=[YOUR_WEBAPPLICATION_ID.apps.googleusercontent.com] 

結果:

{ 
    "access_token": "ya29.GlsCBZuN7hYJILi5VaVggIsCIb1_5feGvcjvQFmJRnPYXsnhsi_w3Md87tQwGd_WXmifo4s5739c3IU5INPmby8q64k0LdDFkO2JpNRG13K9sizvU1Sc-3cWzbf8", 
    "expires_in": 3600, 
    "token_type": "Bearer" 
} 

がヒント(1):あなたが取得しない場合手順6のリクエストからリフレッシュトークンを削除するには、次のクエリパラメータをリクエストに添付します。prompt=consent

関連する問題