我开发了一个PHP应用程序,它将退款数据发送给分析。我想通过数据上传发送退款。我使用Google APIs PHP client library所以下面的代码使用你可以在这里找到的方法:https://github.com/google/google-api-php-client-services/blob/a016ea7b6d47e1fd1f43d89ebd80059d4bfadb32/src/Google/Service/Analytics/Resource/ManagementUploads.php
$dataTxt = "ga:transactionId;ga:quantityRefunded;ga:productSku;ga:productPrice
dcn15355709483497;1;2811841;38.47
dcn15360003605123;1;3568636;89.35
dcn15359475814131;1;4238610;28.98";
$accountId = "xxxx"; # admin -> choose account -> view properties
$webPropertyId = "xxxx"; # admin -> choose property -> view properties
$customDataSourceId = "xxxx";
$data = array(
'data' => $dataTxt,
'mimeType' => 'application/octet-stream',
'uploadType' => 'media');
try {
$this->service->management_uploads->uploadData(
$accountId,
$webPropertyId,
$customDataSourceId,
$data
);
} catch (apiServiceException $e) {
print 'There was an Analytics API service error '
. $e->getCode() . ':' . $e->getMessage();
} catch (apiException $e) {
print 'There was a general API error '
. $e->getCode() . ':' . $e->getMessage();
}
我给了API用户完全访问权限并授予他任何东西。我仍然得到错误:
调用POST https://www.googleapis.com/upload/analytics/v3/management/accounts/2465955/webproperties/UA-2465955-20/customDataSources/gx3hqqEjR7qBrcgrIDkToQ/uploads?uploadType=media时出错:(403)权限不足
我希望有人可以帮助我,因为我没有答案和问题。
(403)许可不足
表示您通过身份验证的用户未授予您足够的权限来执行您尝试执行的操作。很遗憾,您尚未包含验证码。但我可以告诉你,upload data
要求使用以下范围之一对用户进行身份验证
您应该按照此示例进行验证PHP quick start确保您使用的是适当的范围。
然后将运行以下请求。
/**
* Note: This code assumes you have an authorized Analytics service object.
* See the Data Import Developer Guide for details.
*/
/**
* This request uploads a file to a custom data source.
*/
try {
$analytics->management_uploads->uploadData(
'123456',
'UA-123456-1',
'122333444455555',
array('data' => file_get_contents('example.csv'),
'mimeType' => 'application/octet-stream',
'uploadType' => 'media'));
} catch (apiServiceException $e) {
print 'There was an Analytics API service error '
. $e->getCode() . ':' . $e->getMessage();
} catch (apiException $e) {
print 'There was a general API error '
. $e->getCode() . ':' . $e->getMessage();
}