Android — публикация продуктов inapp из Google App Engine SDK в переполнении стека

Я хочу опубликовать продукты inapp в магазине Google Play. Для этого я использую ссылку ниже

https://developers.google.com/android-publisher/api-ref/inappproducts/insert

Это мой код ниже:

include_once "templates/base.php";
session_start();

require_once 'Google/Client.php';
require_once 'Google/Google_AndroidPublisherService.php';
require_once 'Google/Service/AndroidPublisher.php';
require_once 'Google/Google_AssertionCredentials.php';

$client_id = 'xxxxxxxxxxxxxxx';
$client_secret = 'xxxxxxxxxxxxxx';
$redirect_uri = 'http://localhost:8080';$client = new Google_Client();
$client->setClientId($client_id);
$client->setClientSecret($client_secret);
$client->setRedirectUri($redirect_uri);
$client->addScope("https://www.googleapis.com/auth/androidpublisher");$AndroidPublisherService = new Google_Service_AndroidPublisher($client);

if (isset($_GET['code'])) {
$client->authenticate($_GET['code']);
$_SESSION['access_token'] = $client->getAccessToken();
$redirect = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'];
header('Location: ' . filter_var($redirect, FILTER_SANITIZE_URL));
}

$data = '{
"packageName": "com.rhyme",
"sku": "com.book2",
"status": "true",
"purchaseType": "subscription",
"defaultPrice": {
"priceMicros": "5000",
"currency": "INR"},
"prices": {
(key): {
"priceMicros": "",
"currency": ""}
},
"listings": {
(key): {
"title": "testing",
"description": "testing"}
},
"defaultLanguage": "en-us",
"subscriptionPeriod": "",
"season": {
"start": {
"month": "09",
"day": "11"},
"end": {
"month": "12",
"day": "23"}
},
"trialPeriod": ""}';$post = file_get_contents('https://www.googleapis.com/androidpublisher/v2/applications/com.rhyme/inappproducts',null,stream_context_create(array(
'http' => array(
'method'           => 'POST',
'content'          => $data,
),
)));

echo "<pre>";
print_r($post);

if ($post) {
echo $post;
} else {
echo "POST failed";
}

Я получаю токен доступа. Но когда я выполню ссылку https://www.googleapis.com/androidpublisher/v2/applications/com.rhyme/inappproductsэто дает ошибку JSON, как показано ниже:

{
"error": {
"errors": [
{
"domain": "global",
"reason": "required",
"message": "Login Required",
"locationType": "header",
"location": "Authorization"}
],
"code": 401,
"message": "Login Required"

Я не знаю, где я иду не так. Пожалуйста, дайте мне предложения для этого.

1

Решение

Поскольку вы уже используете клиентскую библиотеку API, вы должны сделать что-то вроде этого

$AndroidPublisherService->inappproducts->insert('com.rhyme', $data);

чем с помощью file_get_contents непосредственно.

-1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]