Próbowałem tak wiele rzeczy w ciągu ostatnich dni, ale teraz jestem z pomysłów :(skorzystać z usługi w celu sprawdzenia Google InAppPurchase
Chcę zweryfikować inAppPurchase poczynione w moim Android app.
1) Stworzyłem nowe konto usługi w konsoli Google API.
1a) Konto usługi wymienione unter uprawnienia i ma "można zobaczyć" pozwolenie
2) Używam najnowszej wersji https://github.com/google/google-api-php-client
3) fragment kodu z mojego skryptu PHP:
$client = new Google_Client();
$client->setApplicationName('myAppName');
$client->setClientId('123456789123-vxoasdt8qwe6awerc9ysdfmjysdfysf64werweria8fh.apps.googleusercontent.com');
$key = file_get_contents('/shr/data/stor/b516cexx3123asdf3988345d8133e7f86bfas2553-privatekey.p12');
$service_account_name = '[email protected]per.gserviceaccount.com';
$client->setScopes(array('https://www.googleapis.com/auth/androidpublisher'));
$cred = new Google_Auth_AssertionCredentials($service_account_name, array('https://www.googleapis.com/auth/androidpublisher'), $key);
$client->setAssertionCredentials($cred);
try {
$service = new Google_Service_AndroidPublisher($client);
$googleApiResult = $service->inapppurchases->get($externalAppId, $externalProductId, $purchaseToken);
} catch (Exception $e) {
var_dump($e->getMessage());
}
4) odpowiedź od Google:
GET https://www.googleapis.com/androidpublisher/v1.1/applications/de.test.myapp/inapp/de.test.inapp.google.balance5eur/purchases/[PURCHASETOKEN]: (401) Bieżący użytkownik ma niewystarczające uprawnienia do wykonania żądanej operacji .
[PURCHASETOKEN] jest znak zakup dostałam od google
5) Ustawianie $ cred-> sub = '[email protected]' na mój adres poczty wychowuje
błąd odświeżenie tokenu OAuth2, komunikat: "{" error ": " unauthorized_client "," error_description ":" Nieautoryzowany klient lub zasięg w żądaniu. " } '
Uratowałeś mój dzień! Dziękuję Ci bardzo! Dlaczego nie jest to udokumentowane w dokumentacji Google? – glutorange
Awesome, thanks! Właśnie uratowałeś mnie przed wielkim bólem głowy ... – Mike
Niestety to nie rozwiązuje problemu dla mnie. Ta sama odpowiedź błędu. Co oznacza "łączenie interfejsu API z aplikacją"? Czy to jest adres e-mail konta usługi? –