我需要使用API将CSV上传到Google Analytics(分析)。一切正常,但列中的文件名显示“ Unknown filename”。
这是我的代码:
$analytics = new \Google_Service_Analytics($client);
try {
$analytics->management_uploads->uploadData(
'<acc id>',
'UA-xxx',
'xxxxxxxxxxxxxx',
array(
'data' => file_get_contents($_SERVER['DOCUMENT_ROOT'] . '/ex.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();
}
是否可以发布带有flename的文件?谢谢!
参考方案
客户端库的问题似乎更多,而不是Google Analytics API。
客户端库从POST正文信息中删除文件名的后果
Management API Cost Data Upload .csv Doesn't Have Filename
您可以通过不使用客户端库来解决此问题。
import pycurl
import json
def curlUpload(accountId, webPropertyId, customDataSourceId, csv):
credential_path = 'PATHTOYOURCREDENTIALSJSONFILE'
f = open(credential_path)
googleAccessToken = json.loads(f.read())['access_token']
c = pycurl.Curl()
c.setopt(c.URL, 'https://www.googleapis.com/upload/analytics/v3/management/accounts/' + accountId + '/webproperties/' + webPropertyId + '/customDataSources/' + customDataSourceId + '/uploads?access_token=' + googleAccessToken)
c.setopt(c.HTTPPOST, [
('fileupload', (
c.FORM_FILE, csv,
c.FORM_CONTENTTYPE, 'application/octet-stream'
)),
])
c.perform()
c.close()
Google Analytics(分析)报告中的分页 - php在这里,我正在获取下一个和上一个URL,但是当尝试使用该URL访问下一页时,由于网址= https://www.googleapis.com/analytics/v3/data/ga?ids=ga:85914642&dimensions=ga:pagePath,ga:date&metrics=ga:pageviews,ga:uniquePag…
php-casperjs获取内部文本 - php我正在为casperjs使用php包装器-https://github.com/alwex/php-casperjs我正在网上自动化一些重复的工作,我需要访问一个项目的innerText,但是我尚不清楚如何从casperjs浏览器访问dom。我认为在js中我会var arr = document.querySelector('label.input…
php:是否有充分的理由引用所有数组键/索引? - php我正在遍历别人的代码,他们总是避免转义其数组键。例如:$ row_rsCatalogsItems [名称]代替$ row_rsCatalogsItems ['名称']因此,我不断地对自己接触的所有事物进行微小的更改,以应对这些惰性。但是现在我想知道这样做是否有很多好处。我得到它会在默认为字符串之前检查常量(我在处理常量时会讨厌php中的行为,因为即使未定义,…
PHP getallheaders替代 - php我正在尝试从服务器上的apache切换到nginx。唯一的问题是我在PHP脚本中使用的getallheaders()函数,该函数不适用于Nginx。我已经尝试过用户在getallheaders函数上的php站点上提供的注释,但这并不返回所有请求标头。请告诉我如何解决这个问题。我真的想切换到Nginx。 参考方案 您仍然可以使用它,但是您必须像这里一样重新定义…
PHP标头功能不起作用 - php我曾经使用此功能从一个PHP页面重定向到另一个:header( 'Location: student.php?cnp='.$_REQUEST['name']) ; 在我的本地主机中,它确实可以工作,但是如果在Internet中对其进行测试,则不会重定向。我也尝试给出完整的路径(如http://.../student.p…