Google_Service_BigQueryDataTransferを使用しようとしています。 サービスアカウントを作成し、jsonファイルをダウンロードしました。 jsonファイルのフルパスでGOOGLE_APPLICATION_CREDENTIALSを設定しました。 私はそれが正常に動作するソースエラーGoogle_Service_BigQueryDataTransfer
$this->service->projects_dataSources->
listProjectsDataSources('projects/' . self::PROJECT_ID);
のリストを取得
$client = new Google_Client();
$client->useApplicationDefaultCredentials();
$client->setScopes(array(
Google_Service_Bigquery::BIGQUERY
)
);
$this->service = new Google_Service_BigQueryDataTransfer($client);
GoogleClientとGoogle_Service_BigQueryDataTransferを作成します。
私はそれはまた、正常に動作する転送
$this->service->projects_locations_transferConfigs->
listProjectsLocationsTransferConfigs(
'projects/' . self::PROJECT_ID . '/locations/eu'
);
のリストを取得します。
私は両方の要求がnull
object(Google_Service_BigQueryDataTransfer_CheckValidCredsResponse)[174]
public 'hasValidCreds' => null
........
と最後を返す私は転送に
$params = new Google_Service_BigQueryDataTransfer_TransferConfig();
$params->setDestinationDatasetId('stat');
$params->setDisplayName('ID' . $adword_id);
$params->setDataSourceId(self::DATA_SOURCE_ID);
$params->setDataRefreshWindowDays(10);
$params->setDisabled(false);
$params->setParams(['customer_id'=> (string)$adword_id]);
return $this->service->projects_locations_transferConfigs->create(
$this->getParent(). '/locations/europe',
$params
);
を作成しようとした資格情報
$this->service->projects_locations_dataSources->
checkValidCreds(
'projects/'.self::PROJECT_ID.'/locations/europe/dataSources/adwords',
new Google_Service_BigQueryDataTransfer_CheckValidCredsRequest()
);
または
$this->service->projects_dataSources->checkValidCreds(
'projects/'.self::PROJECT_ID.'/dataSources/adwords',
new Google_Service_BigQueryDataTransfer_CheckValidCredsRequest()
);
を取得
とエラー
Google_Service_Exception: {
"error": {
"code": 400,
"message": "Request contains an invalid argument.",
"errors": [
{
"message": "Request contains an invalid argument.",
"domain": "global",
"reason": "badRequest"
}
],
"status": "INVALID_ARGUMENT"
}
}
を持っていたBigQueryにアクセスできなかったとき、私はページ
https://cloud.google.com/bigquery/docs/reference/datatransfer/rest/v1/projects.transferConfigs/create
からこのエラーが発生しました。 私はサービスアカウントを使用し、dataSourceと転送を一覧表示できますが、データ転送は作成できません。
あなたは何が間違っていると言うことができますか? Googleでは、認可およびアクセスを提供した後
作業コード
$this->client = new Google_Client();
$this->client->useApplicationDefaultCredentials();
$this->client->setAuthConfig('client_secret.json');
$this->client->setAccessType("offline");
$this->client->setIncludeGrantedScopes(true);
$this->client->setScopes(array(
Google_Service_Bigquery::BIGQUERY,
ADWORDS_SCOPE
)
);
$this->client->setRedirectUri(self::REDIRECT_URI);
$url = $this->getAuthUrl();
header('Location: ' . filter_var($url, FILTER_SANITIZE_URL));
。 は私が
$this->client = new Google_Client();
$this->client->useApplicationDefaultCredentials();
$this->client->setAuthConfig(MCC_DIR . 'protected/config/client_secret.json');
$this->client->setAccessType("offline");
$this->client->setIncludeGrantedScopes(true);
$this->client->setScopes(array(
Google_Service_Bigquery::BIGQUERY,
ADWORDS_SCOPE
)
);
$this->client->setRedirectUri(self::REDIRECT_URI);
$code = $_GET['code'];
$this->client->authenticate($code);
$tokken = $this->client->getAccessToken();
$this->client->setAccessToken($tokken);
$this->service = new Google_Service_BigQueryDataTransfer($this->client);
$this->service->projects_locations_dataSources->checkValidCreds(
'projects/1069829667403/locations/europe/dataSources/adwords',
new Google_Service_BigQueryDataTransfer_CheckValidCredsRequest()
);
をコーディングするためにリダイレクトすると、すべてのデフォルトアプリケーションの資格情報が($response->hasValidCreds
がtrue
でない限り、credsをが無効であることに注意してください)BugQuery TransferConfigサービスを使用するには不十分である
ありがとう、すべての権利、すべての作品。 –