2015-08-05 5 views
3

Когда я пытаюсь выполнить запрос на API разработчика Google. покупки(). продукты(). get() Я получаю ошибку 403: projectNotLinked.Подключить более одного идентификатора проекта к консоли разработчика Google Play

Сообщение сообщает мне: «Идентификатор проекта, используемый для вызова API разработчика Google Play, не был связан в консоли разработчика Google Play».

На этом этапе я могу перейти на консоль, отсоединить предыдущий проект и связать его, запустить код, и код работает.

Однако я не могу полностью отключить предыдущий проект: мне нужно, чтобы они оба были связаны. Как решить эту проблему?

Я осмотрелся и не мог найти решение. Попробовали позвонить в Google, и они сказали мне, что они не поддерживают подобные запросы.

Заранее спасибо.

+3

У вас может быть только один проект, связанный с консолью Play Developer за раз. Что вы можете сделать, это попытаться перенести свои учетные данные на один проект, поэтому все содержится в одном проекте. – Andy

ответ

2

Комментарий к Энди, я считаю, что описание LINKED PROJECT в консоли разработчика Google Play путается в лучшем случае.

Однако я установил в Google Developers Console проект компании с соответствующими ключами сервера и учетными записями служб. Он не идеален, но он работает. Затем вы можете назначить разрешение на требуемую учетную запись службы в консоли разработчика Google Play.

Вы также можете настроить только один ключ и учетная запись службы, если это делает его более простым и использовать их, как показано ниже в PHP для сервера

$service_account_name = '[email protected]'; 
$key_file_location = somedir/keyfile.p12; 

$client = new Google_Client(); 
$client->setApplicationName("GoogleDevelopersConsoleProjectName"); 
$service = new Google_Service_AndroidPublisher($client); 

$key = file_get_contents($key_file_location); 
$cred = new Google_Auth_AssertionCredentials(
    $service_account_name, 
    array('https://www.googleapis.com/auth/androidpublisher'), 
    $key 
); 

$client->setAssertionCredentials($cred); 

if($client->getAuth()->isAccessTokenExpired()) { 
    $client->getAuth()->refreshTokenWithAssertion($cred); 
} 

$apiKey = "GoogleDevelopersConsoleServerKey"; 
$client->setDeveloperKey($apiKey); 

$package_name = "com.yourcompany.yourappname1"; 

Тогда все, что вам нужно сделать для другого приложения изменить $ package_name.

$package_name = "com.yourcompany.yourappname2"; 

Затем с помощью Google Service AndroidPublisher для запроса подписки

$service = new Google_Service_AndroidPublisher($client); 

$results = $service->purchases_subscriptions->get($package_name,$subscriptionId,$token,array()); 

Вы также можете начать назначить несколько ключей, учетных записей служб и другие учетные данные добавить другие проекты в Google Play Developer Console.

4

To reemphasise @ andy's comment: Может существовать только один связанный API-проект.

Я провожу достаточно времени, чтобы это выяснить. Документация Google здесь не помогает.

Если вам нужен доступ к нескольким проектам/приложениям, вам необходимо создать несколько учетных записей служб внутри одного связанного проекта API и управлять доступом к приложениям индивидуально.

Смежные вопросы