我已经开发了一个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)权限不足
我希望有人能帮助我,因为我没有答案和问题。
答案 0 :(得分:0)
(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();
}