相关疑难解决方法(0)

服务应用程序和Google Analytics API V3:服务器到服务器OAuth2身份验证?

我正在尝试制作一个服务器应用程序来定期从我自己的GA帐户中提取Google Analytics数据.请注意,它是一个访问我自己的数据的个人服务器端应用程序,即没有最终用户访问此应用程序.

因此,我在Google API控制台中将我的应用程序注册为服务应用程序,该应用程序为我提供了客户端ID私钥.据我所知,服务应用程序不使用应用程序密钥重定向URL,因为此服务器到服务器身份验证流程中没有最终用户.实际上,Google API控制台没有给我任何机密,也没有提示我提供重定向网址.

不幸的是,我无法弄清楚如何在Google的PHP客户端API中验证我的服务应用程序.有关于验证的Web应用程序广泛的文件最终用户.

Google的文档表明,可以通过使用私钥对JWT请求进行签名来验证服务器到服务器.我只是无法弄清楚如何在PHP客户端API中做(虽然我浏览了源代码,但肯定有一个脚本用私钥签署请求.)

我在这里错过了什么吗?如何使用我的私钥和Google PHP客户端API对服务应用程序执行身份验证?

编辑清晰

php google-api google-analytics-api oauth-2.0 jwt

60
推荐指数
1
解决办法
4万
查看次数

Google AnalyticsAPI V3/OAuth 2

我已经拼命想要自己解决这个问题,并且不想带着这个问题来解决这个问题,但是我的智慧结束了(不是因为api/oauth docs).

我正在使用PHP,我试图通过在方法上使用REST 来避免使用Google_ClientAnalyticsServiceanalytics.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_contentsstream_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)

google-analytics google-analytics-api

8
推荐指数
2
解决办法
1万
查看次数