Google Play の新しい Android サブスクリプション システムをアプリケーションで使用しようとしています (既にアプリ内課金は正常に機能していました)。サブスクリプションの請求は正常に完了しましたが、Android のドキュメント (http://developer.android.com/guide/market/billing/billing_subscriptions.html) に示されているように、Google API を使用してこのサブスクリプションに関する情報を取得したいと考えています。 .
サービスで API 呼び出しを実行してこれらの情報を取得できるようにしたいのですが、認証 (oauth2 を使用) に問題があります。これまでのところ、これは私が行っていることです(私のphpサービスで):
require_once 'google-api-php-client/src/apiClient.php'
const SERVICE_ACCOUNT_NAME = 'email from services account access';
$key = 'content of my private key retrieved from services account access';
$client = new apiClient();
$cred = new apiAssertionCredentials(SERVICE_ACCOUNT_NAME, array('https://www.googleapis.com/auth/androidpublisher'), $key);
$assertion = $cred->generateAssertion(); // This generate my encrypted JWT
次に、この JWT オブジェクトを使用してアクセス トークンを取得しようとします。問題は、指定されたアクセス トークンを使用すると、開発者アカウントがアプリケーションを所有していないというエラーが発生することです。これは正しくありません。
(これがその方法ではないことはわかっていますが、JWT を使用して access_token を取得し、それが機能しない理由を理解したかっただけです。Google apis のドキュメントに示されているようにそれを行うと、それも機能しません)。
サーバーからこの API 呼び出しを行う必要があるため、エンドユーザーが関与する必要はありません (手動による同意は必要ありません)。