Tôi có thể thực hiện thành công yêu cầu đến API YouTube Analytics thông qua API Explorer. Mã của tôi đang cố gắng sử dụng thư viện Google PHP Client, cụ thể là lớp Google_Service_YouTubeAnalytics. Thật không may, không có tài liệu nào về lớp này.Mọi yêu cầu đối với API Analytics của Google thông qua Kết quả của Thư viện PHP của Google trong 400 Yêu cầu Không hợp lệ
Tôi đang đặt ID và xác thực xác nhận trên máy khách. Tôi khá tự tin này đang làm việc một cách chính xác, bởi vì nếu tôi thay đổi khóa bí mật để một cái gì đó tôi biết là không chính xác, tôi nhận được:
{"code":400,"error":"Error refreshing the OAuth2 token, message: '{\n \"error\" : \"invalid_grant\"\n}'"}
Nhưng khi tôi chèn private key đúng, tôi nhận được sau phản ứng:
{"code":400,"error":"Error calling GET https:\/\/www.googleapis.com\/youtube\/analytics\/v1\/reports?ids=channel%3D%3DCHANNEL_ID&start-date=2014-09-01&end-date=2014-09-05&metrics=views%2Cuniques: (400) Invalid query. Query did not conform to the expectations."}
Nó không cho tôi biết những gì là hợp lệ về truy vấn (đó sẽ là vô cùng hữu ích), vì vậy tôi không có ý tưởng những gì tôi có thể làm không đúng cách. Bất kỳ trợ giúp được đánh giá cao.
Đây là mã của tôi mà làm cho các yêu cầu:
$client = new \Google_Client();
$client->setApplicationName(self::APP_NAME);
// set some stuff
$client->setClientId(self::CLIENT_ID);
$client->setClientSecret(self::CLIENT_SECRET);
$client->setAssertionCredentials(new \Google_Auth_AssertionCredentials(
self::CRED_ID,
[
"https://www.googleapis.com/auth/youtube.readonly",
'https://www.googleapis.com/auth/yt-analytics.readonly'
],
self::youtubeKey()
));
$youtubeService = new \Google_Service_YouTubeAnalytics($client);
$resp = $youtubeService->reports->query(
self::CHANNEL_ID,
'2014-09-01',
'2014-09-05',
'views,uniques'
);
Ngoài ra, tôi đang sử dụng thư viện ứng dụng khách Google Analytics trong mã của mình và hoạt động tốt. Tôi đang sử dụng mã theo cách tương tự. Xấu. –
Ứng dụng của bạn có thực sự gửi chuỗi "channel == CHANNEL_ID" làm giá trị của tham số id hay là sửa đổi của bạn khi bạn dán mã lỗi trong SO? – jlmcdonald
Không, tôi đã thay đổi điều đó để ẩn ID kênh thực của tôi trong bài đăng này. Trong mã của tôi, đó là giá trị ID kênh của tôi. –