Google Play の新しいサブスクリプション機能を使用する Android アプリを開発しています。私のアプリの一部は、API 呼び出しを介してこれらのサブスクリプションのステータスを定期的にチェックする Web サーバーで構成されています。また、これらのサブスクリプションの一部をキャンセルします。
これを実現するために、Google は 2 つの REST API を提供しています。
https://developers.google.com/android-publisher/v1/purchases/get
https://developers.google.com/android-publisher/v1/purchases/cancel
OAuth を使用して、最初のものをうまく機能させることができます。ただし、特定のサブスクリプションをキャンセルしようとすると、500 エラーが発生し、詳細が表示されません。他の誰かがこれを経験しましたか?私はそれを間違って使用していますか?最初の API をヒットできるので、OAuth が機能していることは確かです。アカウント データの一部が隠されている私の curl 出力は次のとおりです。
curl -X POST 'https://www.googleapis.com/androidpublisher/v1/applications/com.ssd.mypkg/subscriptions/mysku/purchases/mypurchasetoken/cancel' -H 'Authorization: OAuth ya29.myoauth' -d '' -v
* About to connect() to www.googleapis.com port 443 (#0)
* Trying 209.85.148.95... connected
* Connected to www.googleapis.com (209.85.148.95) port 443 (#0)
* SSLv3, TLS handshake, Client hello (1):
* SSLv3, TLS handshake, Server hello (2):
* SSLv3, TLS handshake, CERT (11):
* SSLv3, TLS handshake, Server finished (14):
* SSLv3, TLS handshake, Client key exchange (16):
* SSLv3, TLS change cipher, Client hello (1):
* SSLv3, TLS handshake, Finished (20):
* SSLv3, TLS change cipher, Client hello (1):
* SSLv3, TLS handshake, Finished (20):
* SSL connection using RC4-SHA
* Server certificate:
* subject: C=US; ST=California; L=Mountain View; O=Google Inc; CN=*.googleapis.com
* start date: 2012-06-14 06:42:53 GMT
* expire date: 2013-06-07 19:43:27 GMT
* subjectAltName: www.googleapis.com matched
* issuer: C=US; O=Google Inc; CN=Google Internet Authority
* SSL certificate verify ok.
> POST /androidpublisher/v1/applications/com.ssd.mypkg/subscriptions/mysku/purchases/mypurchasetoken/cancel HTTP/1.1
> User-Agent: curl/7.21.4 (universal-apple-darwin11.0) libcurl/7.21.4 OpenSSL/0.9.8r zlib/1.2.5
> Host: www.googleapis.com
> Accept: */*
> Authorization: OAuth ya29.myoauth
> Content-Length: 0
> Content-Type: application/x-www-form-urlencoded
>
< HTTP/1.1 500 Internal Server Error
< Content-Type: application/json; charset=UTF-8
< Date: Fri, 06 Jul 2012 15:23:10 GMT
< Expires: Fri, 06 Jul 2012 15:23:10 GMT
< Cache-Control: private, max-age=0
< X-Content-Type-Options: nosniff
< X-Frame-Options: SAMEORIGIN
< X-XSS-Protection: 1; mode=block
< Server: GSE
< Transfer-Encoding: chunked
<
{
"error": {
"code": 500,
"message": null
}
}
* Connection #0 to host www.googleapis.com left intact
* Closing connection #0
* SSLv3, TLS alert, Client hello (1):