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"
}
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"
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've got the following json response from spotify api:
{
"artists" : {
"href" : "https://api.spotify.com/v1/search?query=U2&type=artist&offset=0&limit=20",
"items" : [ {
"external_urls" : {
"spotify" : "https://open.spotify.com/artist/51Blml2LZPmy7TTiAg47vQ"
},
"followers" : {
"href" : null,
"total" : 3146466
},
"genres" : [ "irish rock", "permanent wave", "rock" ],
"href" : "https://api.spotify.com/v1/artists/51Blml2LZPmy7TTiAg47vQ",
"id" : "51Blml2LZPmy7TTiAg47vQ",
"images" : [ {
"height" : 640,
"url" : "https://i.scdn.co/image/e22d5c0c8139b8439440a69854ed66efae91112d",
"width" : 640
}, {
"height" : 160,
"url" : "https://i.scdn.co/image/7293d6752ae8a64e34adee5086858e408185b534",
"width" : 160
} ],
"name" : "U2",
"popularity" : 76,
"type" : "artist",
"uri" : "
I would like to get the id value, which in this case is
51Blml2LZPmy7TTiAg47vQ
but I can't figure out how to make a query in this json using dart.
I tried out as this answer but did not work.
Is there any way to make a query on json with flutter?
Try json.decode(string)['artists']['items'][0]['id']
json.decode decodes the string to a Map<dynamic, dynamic> containing nested Maps and Lists into which you can index. (Maps are indexed by key; Lists are indexed by integer.)
I am using the original retrofit to call the Instagram api. The call returns this reponse
{ "data" : [ { "attribution" : null,
"caption" : { "created_time" : "1460953831",
"from" : { "full_name" : "Edward ♕",
"id" : "282525924",
"profile_picture" : "https://scontent.cdninstagram.com/t51.2885-19/s150x150/12519400_165282517199271_1363863979_a.jpg",
"username" : "manlike_eddy"
},
"id" : "17847512245075242",
"text" : "Oh girl"
},
"comments" : { "count" : 1,
"data" : [ { "created_time" : "1460953885",
"from" : { "full_name" : "Edward ♕",
"id" : "282525924",
"profile_picture" : "https://scontent.cdninstagram.com/t51.2885-19/s150x150/12519400_165282517199271_1363863979_a.jpg",
"username" : "manlike_eddy"
},
"id" : "17847512257075242",
"text" : "#love #TagsForLikes #TagsForLikesApp #instagood #me #smile #follow #cute #photooftheday #tbt #followme #girl #beautiful #happy #picoftheday #instadaily #food #swag #amazing #TFLers #fashion #igers #fun #summer #instalike #bestoftheday #smile #like4like #friends #instamood"
} ]
},
"created_time" : "1460953831",
"filter" : "Normal",
"id" : "1230892414266144399_282525924",
"images" : { "low_resolution" : { "height" : 320,
"url" : "https://scontent.cdninstagram.com/t51.2885-15/s320x320/e35/12965764_932183320233898_1928407701_n.jpg?ig_cache_key=MTIzMDg5MjQxNDI2NjE0NDM5OQ%3D%3D.2.l",
"width" : 320
},
"standard_resolution" : { "height" : 640,
"url" : "https://scontent.cdninstagram.com/t51.2885-15/s640x640/sh0.08/e35/12965764_932183320233898_1928407701_n.jpg?ig_cache_key=MTIzMDg5MjQxNDI2NjE0NDM5OQ%3D%3D.2.l",
"width" : 640
},
"thumbnail" : { "height" : 150,
"url" : "https://scontent.cdninstagram.com/t51.2885-15/s150x150/e35/c257.0.565.565/12950340_1566398773652655_1170974002_n.jpg?ig_cache_key=MTIzMDg5MjQxNDI2NjE0NDM5OQ%3D%3D.2.c",
"width" : 150
}
},
"likes" : { "count" : 0,
"data" : [ ]
},
"link" : "https://www.instagram.com/p/BEVAiEVDnaP/",
"location" : null,
"tags" : [ "beautiful",
"cute",
"fashion",
"love",
"summer",
"food",
"instalike",
"tbt",
"tagsforlikesapp",
"igers",
"follow",
"instadaily",
"instamood",
"friends",
"girl",
"me",
"swag",
"like4like",
"tflers",
"followme",
"instagood",
"tagsforlikes",
"amazing",
"bestoftheday",
"fun",
"smile",
"photooftheday",
"picoftheday",
"happy"
],
"type" : "image",
"user" : { "full_name" : "Edward ♕",
"id" : "282525924",
"profile_picture" : "https://scontent.cdninstagram.com/t51.2885-19/s150x150/12519400_165282517199271_1363863979_a.jpg",
"username" : "manlike_eddy"
},
"user_has_liked" : false,
"users_in_photo" : [ ]
} ],
}
}
As you can see some of the labels are using snakecase, such as standard_resolution. When I plug this data into Json Pogo it creates two classes for standard_resolution. One named StandardResolution and one StandardResolution. When I call .getStandardResolution() on the respective object null is returned, even though it should have valid data.