uploadData中的文件名Google Analytics(分析) - php

我需要使用API​​将CSV上传到Google Analytics(分析)。一切正常,但列中的文件名显示“ Unknown filename”。

uploadData中的文件名Google Analytics(分析) - php

这是我的代码:

$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…