我已经拼命想要自己解决这个问题,并且不想带着这个问题来解决这个问题,但是我的智慧结束了(不是因为api/oauth docs).
我正在使用PHP,我试图通过在方法上使用REST 来避免使用Google_Client和AnalyticsService类analytics.data.ga.get.
STEP #1: Create an API Project for a Web Application
我转到api控制台并使用分析服务创建一个项目并获取OAuth客户端ID和密钥.
我的印象是我可以为已安装的应用程序或Web应用程序创建客户端ID,因为我正在手动进行初始令牌握手.如果我错了,请纠正我.
我为Web应用程序创建了一个客户端ID,并获取了我的客户端ID xxxxxxxxxxxxxx.apps.googleusercontent.com,客户端密码yyyyyyyyyyyyyyy和我的重定向URIhttp://localhost:9002
STEP #2: Request initial API access
我输入这个链接; https://accounts.google.com/o/oauth2/auth?response_type=code&client_id=xxxxxxxxxxxxxx.apps.googleusercontent.com&redirect_uri=http://localhost:9002&scope=https://www.googleapis.com/auth/analytics.readonly&access_type=offline
这access_type=offline是因为我正在使用REST,并且不希望"用户"(我自己)每次需要刷新令牌时手动处理重定向/弹出窗口.
上述请求返回 http://localhost:9002?code=4/KModH0K_xxxxxxxxxxxxxxxxxxx9Iw.gikOaYRDWywTshQV0ieZDArCOX8XdwI
代码4/KModH0K_xxxxxxxxxxxxxxxxxxx9Iw.gikOaYRDWywTshQV0ieZDArCOX8XdwI是我的许可,可以请求API令牌.
STEP #3: Request First Token
由于我公司的IT问题,我被迫使用PHP 5.2.17并且我无法访问PHP cURL,因此我正在使用file_get_contents和stream_context_create.
使用PHP请求第一个令牌file_get_contents();
$opts = array(
'http' => array(
'method' => 'POST',
'header' => 'Content-Type: application/x-www-form-urlencoded',
'content' …Run Code Online (Sandbox Code Playgroud)