我正在使用 google-api-java-client 版本 1.8-beta 对 Google 帐户进行 oAuth2 身份验证。一切都很好,直到我得到 GoogleTokenResponse 对象,它有访问令牌但没有刷新令牌。要构建请求 url,我使用以下方法:
...
googleAuthenticationUrl = new GoogleAuthorizationCodeRequestUrl(CLIENT_ID, callBackUrl, scopes).build();
...
Run Code Online (Sandbox Code Playgroud)
获取请求令牌时,我将其与此行中的访问令牌交换:
...
GoogleTokenResponse tokenResponse = new GoogleAuthorizationCodeTokenRequest(new NetHttpTransport(), new JacksonFactory(), CLIENT_ID, CLIENT_SECRET, request.getParameter(CODE_URL_PARAM), callBackUrl).execute();
...
Run Code Online (Sandbox Code Playgroud)
返回的 GoogleTokenResponse 对象不包含刷新令牌:
{"access_token":"ya29.AH..etc...9-Y","expires_in":3600,"token_type":"Bearer"}
Run Code Online (Sandbox Code Playgroud)
你能解释一下这个问题吗?非常感谢您的帮助!
我正在绞尽脑汁想弄清楚如何使用Google API PHP 客户端来访问 Google Analytics。具体来说,我想从其他广告系列上传成本数据。我的代码确实可以从 GA 获取信息,我可以查看配置文件的流量数据,但我不知道如何上传。
这是我用于身份验证的代码:
require_once 'google-api-php-client/src/Google_Client.php';
require_once 'google-api-php-client/src/contrib/Google_AnalyticsService.php';
session_start();
$client = new Google_Client();
$client->setApplicationName("GA-Tester");
$client->setClientId('xxx.apps.googleusercontent.com');
$client->setClientSecret('xxx');
$client->setRedirectUri('http://www.site.com/indext.php');
$client->setDeveloperKey('xxx');
$analyticsService = new Google_AnalyticsService($client);
$dailyUploads = $analyticsService->management_dailyUploads;
if (isset($_GET['logout'])) {
unset($_SESSION['token']);
}
if (isset($_GET['code'])) {
$client->authenticate();
$_SESSION['token'] = $client->getAccessToken();
$redirect = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'];
header('Location: ' . filter_var($redirect, FILTER_SANITIZE_URL));
}
if (isset($_SESSION['token'])) {
$client->setAccessToken($_SESSION['token']);
}
if (!$client->getAccessToken()) {
header ('Location:http://www.site.com/indext.php');
} else {...
Run Code Online (Sandbox Code Playgroud)
此代码确实适用于请求数据。我可以获得帐户列表、配置文件、下载特定配置文件的流量数据等。没有错误或问题。
当我尝试上传包含成本数据的 CSV 文件时,出现“401 凭据无效”错误。这是发送文件的代码:
$send = $dailyUploads->upload( …Run Code Online (Sandbox Code Playgroud) 我注意到 Google 最近从他们的 Node 客户端删除了批量请求:
如何使用 Node 编写批处理请求?我试图在给定一组邮件 ID 的情况下获取 Gmail 中电子邮件的内容。
以下是 Google 说我应该这样做的方式,但我以前从未提出过此类请求:
我正在尝试使用Google Admin SDK Data Transfer API的transfers:insert方法。我正在以我的域的超级管理员帐户执行此 API 调用。我已验证为我们的域启用了API 访问,并且超级管理员管理员角色有权使用数据传输 API。
我正在此页面上的 API 资源管理器中对此进行测试。
55656082996是我从Applications:list APIs Explorer为 Google Drive 获取的 ID 字符串。
要求:
POST https://www.googleapis.com/admin/datatransfer/v1/transfers?key={YOUR_API_KEY}
{
"oldOwnerUserId": "olduser@ourdomain.com",
"newOwnerUserId": "newuser@ourdomain.com",
"applicationDataTransfers": [
{
"applicationId": "55656082996"
}
]
}
Run Code Online (Sandbox Code Playgroud)
回复:
400 OK
- SHOW HEADERS -
{
"error": {
"errors": [
{
"domain": "global",
"reason": "invalid",
"message": "Invalid value for: Invalid oldOwnerUserId."
}
],
"code": 400,
"message": "Invalid value for: Invalid oldOwnerUserId." …Run Code Online (Sandbox Code Playgroud) 查看 Google 自定义搜索 API 的文档,“gl”参数的国家/地区代码列表不可用。
gl 参数值是一个由两个字母组成的国家/地区代码。gl 参数会提升原产国与参数值匹配的搜索结果。有关有效值的列表,请参阅国家/地区代码页面。
在这里找到的链接:https : //developers.google.com/custom-search/json-api/v1/reference/cse/list
指向这里:https : //developers.google.com/custom-search/docs/xml_results#countryCodes
其中不包含任何国家/地区代码。
在哪里可以找到有效国家/地区代码值列表,以便确定有效值集?
我有一个用户的谷歌 ID,我想在我的应用程序中显示他的谷歌个人资料照片。在我的swift代码中,我尝试使用必要的信息获取 json(基于此答案/sf/answers/1576829131/)。这是我的代码:
Alamofire.request(.GET, "https://www.googleapis.com/plus/v1/people/10263...4252?key=AI...Oo")
.responseJSON { response in
print(response)
switch response.result {
case .Success:
dispatch_async(dispatch_get_main_queue(),{
if let jsonData = response.result.value as? [[String: AnyObject]] {
print(jsonData)
}
})
case .Failure(let error):
print("SWITCH ERROR")
print(error)
}
}
Run Code Online (Sandbox Code Playgroud)
但作为回应,我收到此错误:
error = {
code = 403;
errors = (
{
domain = usageLimits;
extendedHelp = "https://console.developers.google.com";
message = "There is a per-IP or per-Referer restriction configured on your API key and the request does not match these restrictions. Please …Run Code Online (Sandbox Code Playgroud) 我的目标是使用 YouTube Data API v3 搜索与输入关键字匹配的 YouTube 视频。现在,YouTube 数据 API v3 只允许您使用“q”参数搜索通过开发人员的应用程序或网站上传的视频,但它不允许您像我们在 YouTube 中所做的那样对与输入搜索关键字匹配的视频进行通用搜索应用。
如果我错过了指南中的某些内容或者有一些解决方法可以实现这一点,请纠正我。
任何人都可以帮助我获得一份国家名单和一份他们的城市名单吗?是否有任何用于获取这些列表的 google Api?
我有一个 Wordpress 站点(运行 PHP),需要使用 google-api 向访问者显示自己的分析数据。我想用 Javascript 创建图表,所以我需要从 PHP 代码中获取一个身份验证令牌,然后将其传递给 Javascript 代码。我不知道如何获取身份验证令牌。
到目前为止,我使用我的服务帐户使用了与此类似的代码:https : //github.com/google/google-api-php-client/blob/master/examples/service-account.php
我的代码:
$client = new Google_Client();
$client->setAuthConfig($credentialsFilePath);
$client->addScope('https://www.googleapis.com/auth/analytics.readonly');
$client->setApplicationName("GoogleAnalytics");
$analytics = new Google_Service_Analytics($client);
$ga = $analytics->data_ga;
$start = date('Y-m-d', strtotime('-7 days'));
$end = date('Y-m-d');
$views = $ga->get('ga:'.$myAnalyticsId,
$start,
$end,
'ga:pageviews,ga:sessions,ga:newUsers',
array(
'dimensions' => 'ga:date',
'sort' => 'ga:date'
));
Run Code Online (Sandbox Code Playgroud)
这一切正常,我能够连接到 Google_Service_Analytics 并获取分析数据。但是,我无法弄清楚如何使用我的凭据获取服务访问令牌,我可以将其交给 Javascript 代码,以便我可以从 Javascript 使用 Google Analytics API。
这不起作用:
$token = $client->getAccessToken();
Run Code Online (Sandbox Code Playgroud)
令牌最终为空。我需要做什么来获取令牌?
google-api ×10
oauth-2.0 ×2
php ×2
android ×1
google-apps ×1
ios ×1
java ×1
node-request ×1
node.js ×1
oauth ×1
swift ×1
youtube ×1