Я создал поставщика услуг в своем приложении laravel, которое подключается к API электронных таблиц Google, и я могу создавать новые таблицы, редактировать существующие (с правильными правами доступа для обмена) и т. Д.
Проблема в том, что я предоставил ключ учетных данных json своей учетной записи службы, поэтому создаваемые электронные таблицы принадлежат этому загадочному почтовому адресу, поэтому после создания - я получаю идентификатор и при попытке доступа к электронной таблице он дает мне эту страницу «запроса доступа», и когда я пытаюсь запросить доступ к своей собственной электронной почте (я также определил себя как «владельца» проекта), я получаю эти уведомления о состоянии доставки по почте -
Ваше сообщение не было доставлено
xxxxxx@yyyyyy-1x3x71x4x27x4.iam.gserviceaccount.com потому что домен
admanager-1x3x71x4x27x4.iam.gserviceaccount.com не может быть найден.
Проверьте на наличие опечаток или ненужных пробелов и повторите попытку.
Очевидно, что он пытается отправить электронное письмо от меня (xxxx@gmail.com
) на адрес электронной почты моей учетной записи службы, чтобы запросить доступ к этой конкретной таблице, и, конечно, этот адрес на самом деле не существует. Я чувствую, что я делаю что-то не так с самого начала ..
GoogleServiceProvider.php -
class GoogleServiceProvider extends ServiceProvider
{
/**
* Register services.
*
* @return void
*/
public function register()
{
$this->app->singleton('google_spreadsheet_client', function ($app) {
// we will instantiate the Google Spread Sheet Client once in this function
$client = new Google_Client();
$client->setApplicationName('xxxxx');
$client->setScopes(Google_Service_Sheets::SPREADSHEETS);
$client->setAuthConfig('xxxxxx-1xyxyxyxyxyxy-221ca2fc3123.json');
$google_service_sheets = new Google_Service_Sheets($client);
return $google_service_sheets;
});
}
SpreadsheetController.php
class SpreadsheetsController extends Controller {
public function create() {
$service = resolve('google_spreadsheet_client');
$spreadsheet = new \Google_Service_Sheets_Spreadsheet([
'properties' => [
'title' => 'test'
]
]);
$spreadsheet = $service->spreadsheets->create($spreadsheet, [
'fields' => 'spreadsheetId'
]);
printf("Spreadsheet ID: %s\n", $spreadsheet->spreadsheetId);
}
}
И, как я уже сказал, я получаю ответ со строкой, которая выглядит как фактический идентификатор электронной таблицы, но по какой-то причине не могу получить к ней доступ с помощью своего собственного электронного адреса.