Caused by: com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Forbidden
{
"code" : 403,
"errors" : [ {
"domain" : "global",
"message" : "Requests from this Android client application are blocked.",
"reason" : "forbidden"
} ],
"message" : "Requests from this Android client application are blocked.",
"status" : "PERMISSION_DENIED"
Related
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"
}
{
"code": 403,
"errors": [
{
"domain": "global",
"message": "Requests from this Android client application are blocked.",
"reason": "forbidden"
}
],
"message": "Requests from this Android client application are blocked.",
"status": "PERMISSION_DENIED"
}
com.google.api.client.googleapis.json.GoogleJsonResponseException: 400 Bad Request
{
"code" : 400,
"errors" : [ {
"message" : "Invalid value at 'track_config.releases[0].status' (TYPE_ENUM), \"Completed\"",
"reason" : "invalid"
} ],
"message" : "Invalid value at 'track_config.releases[0].status' (TYPE_ENUM), \"Completed\"",
"status" : "INVALID_ARGUMENT"
}
I am using YouTube Data API in my app, and for some reason, sometimes I get an error, when user tries to upload a video.
Here it is:
D/Test (28216): 401 Unauthorized
D/Test (28216): {
D/Test (28216): "code" : 401,
D/Test (28216): "errors" : [ {
D/Test (28216): "domain" : "global",
D/Test (28216): "location" : "Authorization",
D/Test (28216): "locationType" : "header",
D/Test (28216): "message" : "Invalid Credentials",
D/Test (28216): "reason" : "authError"
D/Test (28216): } ],
D/Test (28216): "message" : "Invalid Credentials"
D/Test (28216): }
I am authorizating user using GoogleAccountCredential like this:
List<String> ls = new ArrayList<>();
ls.add(YouTubeScopes.YOUTUBE_READONLY);
ls.add(YouTubeScopes.YOUTUBE_UPLOAD);
ls.add(YouTubeScopes.YOUTUBE_FORCE_SSL);
credential = GoogleAccountCredential.usingOAuth2(c, ls);
credential.setSelectedAccountName(name);
And I am not sure, what I'm doing wrong, because the error shows up very randomly, and only to some accounts, for e.g. on my phone the error never showed up, but on other people's devices yes.
Does anyone know how I can ensure this error won't show up, or at least how to fix the credentials after the error is shown?
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.