I am new to YouTube APIs. I have done create and fetch live events on YouTube. But I'm trying to start live events from my app I'm getting error:
Code:
fun startEvent(youtube: YouTube, broadcastId: String?) {
val transitionRequest = youtube.liveBroadcasts().transition(
"live", broadcastId, "status"
)
transitionRequest.key = context.getString(R.string.api_key)
transitionRequest.execute()
}
Error:
com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Forbidden
POST https://www.googleapis.com/youtube/v3/liveBroadcasts/transition?broadcastStatus=live&id=[BROADCAST_ID]&key=[API_KEY]&part=status
{
"code": 403,
"errors": [
{
"domain": "youtube.liveBroadcast",
"message": "Invalid transition",
"reason": "invalidTransition",
"extendedHelp": "https://developers.google.com/youtube/v3/live/docs/liveBroadcasts/transition#params"
}
],
"message": "Invalid transition"
}
Related
I am using the PHP library to use the Android Management API. I can update policies successfully. But I am unable to create a WebToken needed for the Web App iframe.
I have set a credential file.
I do
$client = new Google_Client();
$client->useApplicationDefaultCredentials();
$client->addScope("https://www.googleapis.com/auth/androidmanagement");
$client->setApplicationName("MyAppName");
$androidmanagementService = new Google_Service_AndroidManagement($client);
Then I try to create a WebToken for the request:
$webTokens = $androidmanagementService->enterprises_webTokens;
$webToken = new Google_Service_AndroidManagement_WebToken();
My understanding is that only the ParentFrameUrl and Permissions are needed, everything else will be set in the answer:
$webToken->setPermissions(array("APPROVE_APPS"));
$webToken->setParentFrameUrl("http://37.71.157.174/mdm/");
But I tried also to set the other values:
//$webToken->setName("MyWebAppView");
//$webToken->setValue("98784");
Then I try to create the WebToken :
$webtoken = $webTokens->create("enterprises/entname", $webToken);
And I always get this Google_Service_Exception:
{ "error": { "code": 400, "message": "Invalid parameter: tokenSpec.parent", "errors": [ { "message": "Invalid parameter: tokenSpec.parent", "domain": "global", "reason": "badRequest" } ], "status": "INVALID_ARGUMENT" } }
The full PHP exception is:
Uncaught Google_Service_Exception: { "error": { "code": 400, "message": "Invalid parameter: tokenSpec.parent", "errors": [ { "message": "Invalid parameter: tokenSpec.parent", "domain": "global", "reason": "badRequest" } ], "status": "INVALID_ARGUMENT" } } in /var/www/vendor/google/apiclient/src/Google/Http/REST.php:118 Stack trace: #0 /var/www/vendor/google/apiclient/src/Google/Http/REST.php(94): Google_Http_REST::decodeHttpResponse(Object(GuzzleHttp\Psr7\Response), Object(GuzzleHttp\Psr7\Request), 'Google_Service_...') #1 /var/www/vendor/google/apiclient/src/Google/Task/Runner.php(176): Google_Http_REST::doExecute(Object(GuzzleHttp\Client), Object(GuzzleHttp\Psr7\Request), 'Google_Service_...') #2 /var/www/vendor/google/apiclient/src/Google/Http/REST.php(58): Google_Task_Runner->run() #3 /var/www/vendor/google/apiclient/src/Google/Client.php(798): Google_Http_REST::execute(Object(GuzzleHttp\Client), Object(GuzzleHttp\Psr7\Request), 'Google_Service_ in /var/www/vendor/google/apiclient/src/Google/Http/REST.php on line 118
I have no idea what is wrong. But Everything before the WebToken part work for the other API call.
The URL of the parent frame must use the HTTPS scheme. I think that's the issue you're hitting.
This is mentioned in the documentation of the WebToken resource but it's true that the error message could be clearer.
POST
https://www.googleapis.com/androidpublisher/v2/applications/{your_package_name}/reviews/
{review_id}:reply?access_token={your_access_token}
Header : { Content-Type:application/json }
Body : { "replyText" : "comment_having_306_characters_no_html_tags" }
However, I get the following response from google
{
"error": {
"errors": [{
"domain": "global",
"reason": "invalid",
"message": "Invalid Value"
}],
"code": 400,
"message": "Invalid Value"
}
}
According to google developer portal "The request failed because it contained an invalid value. The value could be a parameter value, a header value, or a property value."
Can anyone here enlighten me on what's wrong with the value i passed in ? Any help is appreciated.
I get the following error when trying to add new calendar under a google
account:
com.google.api.client.googleapis.json.GoogleJsonResponseException: 400 Bad Request
{
"code": 400,
"errors": [
{
"domain": "global",
"message": "Invalid resource id value.",
"reason": "invalid"
}
],
"message": "Invalid resource id value."
}
I do not have any errors when submitting my scores using:
public void submitScore(int score)
{
Games.Leaderboards.submitScore(mGoogleApiClient, "leaderboard_easy_leaderboard", score);
}
but when I run my display leaderboard code:
public void displayScores()
{
startActivityForResult(Games.Leaderboards.getLeaderboardIntent(mGoogleApiClient, "leaderboard_easy_leaderboard"), 0);
}
I recieve the following errors:
11-07 17:00:39.873 32580-1830/? E/Volley: [161] BasicNetwork.performRequest: Unexpected response code 400 for https://www.googleapis.com/games/v1/leaderboards/leaderboard_easy_leaderboard?language=en_US
11-07 17:00:39.882 32580-9774/? E/LeaderboardAgent: Unable to retrieve leaderboard leaderboard_easy_leaderboard
11-07 17:00:39.882 32580-9774/? E/LeaderboardAgent: No instance found for leaderboard leaderboard_easy_leaderboard for SOCIAL and ALL_TIME
The googleapis link displays the following text:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "required",
"message": "Login Required",
"locationType": "header",
"location": "Authorization"
}
],
"code": 401,
"message": "Login Required"
}
}
All I needed to do was:
getString(R.string.leaderboard_easy_leaderboard)
Instead of:
"leaderboard_easy_leaderboard"
So the final solution was:
public void displayScores()
{
startActivityForResult(Games.Leaderboards.getLeaderboardIntent(mGoogleApiClient, getString(R.string.leaderboard_easy_leaderboard)), 0);
}
I been following Getting started and sign in to get access_token of user.
I do get an access token but when using it i am getting this error:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "authError",
"message": "Invalid Credentials",
"locationType": "header",
"location": "Authorization"
}
],
"code": 401,
"message": "Invalid Credentials"
}
}
When I am going to apis-explorer and using they token it works just fine.
Any ideas what am I missing?
This is then URL I am trying.
https://www.googleapis.com/plus/v1/people/me?key={my_api_key}&access_token=my_access_token
These tokens have a 1 hour expiration period.