0

我的問題類似於this one。但是,我使用帶服務帳戶的API Java Client Library,從我的服務器調用API。Google Play開發者API - 400無效值 - InAppPurchases

我的代碼如下this指南,這很簡單。但是,我似乎無法爲我的請求得到適當的錯誤。這是我建立我的AndroidPublisher:凡從開發者控制檯,在服務帳戶產生的JSON

val credential = GoogleCredential.fromStream(FileInputStream(
     "/path/to/json" 
)).createScoped(Collections.singleton(AndroidPublisherScopes.ANDROIDPUBLISHER)) 

androidPublisher = AndroidPublisher.Builder(httpTransport, JSON_FACTORY, credential) 
     .setApplicationName(packageName) 
     .build() 

。這是我如何提出要求:

androidPublisher.purchases().subscriptions().get(packageName, "valid-sku", "invalid-token").execute() 

我的訂閱ID有效,但我的令牌無效。我期望在響應中出現諸如「無效標記」之類的錯誤。不過,我得到的是:

com.google.api.client.googleapis.json.GoogleJsonResponseException: 400 Bad Request 
{ 
    "code" : 400, 
    "errors" : [ { 
    "domain" : "global", 
    "message" : "Invalid Value", 
    "reason" : "invalid" 
    } ], 
    "message" : "Invalid Value" 
} 

那是一個普通的錯誤,因爲無效的令牌或者是認證問題?如果它是一個身份驗證問題,我該如何解決它?如果這是一個無效的令牌問題,我該怎麼知道?

一些詳細信息:

  • 我試圖讓從API瀏覽器,以及該呼叫(這次使用客戶端ID和API密鑰,而不是服務帳戶)時,得到同樣的錯誤。
  • 我有而不是委派域服務帳戶的訪問權限。出於某種原因我需要嗎?
  • 我可以成功地使其他電話的API,如inappproducts.list

回答

0

所以,這發生的原因是,只是因爲我用的是purchaseToken是錯誤的。

我沒有想到,因爲我認爲在無效標記的情況下,我會收到「標記無效」錯誤(或類似的東西)。事實證明,谷歌給出的迴應非常不一致(404也可能是一個無效令牌)。

相關問題