Getting 500 - Internal Error Encountered with Youtube Broadcast Insert API - android

I am trying to insert a LiveBroadcast using Youtube LIVE streaming API.
Here is my request which I made on the API playground on youtube API docs.
POST https://www.googleapis.com/youtube/v3/liveBroadcasts?part=snippet%2C%20id%2C%20status%2C%20contentDetails&key=[YOUR_API_KEY] HTTP/1.1
Authorization: Bearer [YOUR_ACCESS_TOKEN]
Accept: application/json
Content-Type: application/json
{
"contentDetails": {
"enableClosedCaptions": true,
"enableEmbed": true,
"enableLowLatency": true,
"recordFromStart": true,
"enableAutoStart": true,
"enableAutoStop": true
},
"status": {
"privacyStatus": "public",
"selfDeclaredMadeForKids": true,
"liveBroadcastPriority": "high",
"madeForKids": true
},
"snippet": {
"title": "My broadcasst",
"description": "My Description",
"scheduledStartTime": "2020-06-177T03:48:46.46Z",
"scheduledEndTime": "2020-06-178T11:48:52.52Z"
}
}
And the response that I am getting is
{
"error": {
"code": 500,
"message": "Internal error encountered.",
"errors": [
{
"message": "Internal error encountered.",
"domain": "global",
"reason": "backendError"
}
],
"status": "INTERNAL"
}
}
Any help will be appreciated. Thanks in advance

The error was with the time format string that I had copied from google docs for ISO-8601 format, mentioned for all their time-relatedfields. I suggest creating your format string from here for java code

According to the docs, you're not supposed to provide the makeForKids property (that's the job of the API).
When calling for liveBroadcasts.insert endpoint, if wanting to designate the respective broadcast as child-directed, you should use this property instead:
status.selfDeclaredMadeForKids (boolean)
In a liveBroadcasts.insert request, this property allows the channel owner to designate the broadcast as being child-directed. In a liveBroadcasts.list request, the property value is only returned if the channel owner authorized the API request.
The other properties that you shouldn't have set are enableLowLatency and liveBroadcastPriority.

Related

Problem with create androidapps using Firebase Management Api

I have read these documents about create android apps using firebase management api.
https://firebase.google.com/docs/projects/api/reference/rest/v1beta1/projects.androidApps/create
https://firebase.google.com/docs/projects/api/reference/rest/v1beta1/projects.androidApps#AndroidApp
Document doesn't mention which field is required to create app.
After calling below request:
POST v1beta1/projects/sublime-formula-310010/androidApps
{
"displayName": "ggds",
"packageName": "sdf.aw.dsff",
"projectId": "sublime-formula-310010",
"appId": "asdfasdfaewrwe",
"name": "projects/sublime-formula-310010/androidApps/asdfasdfaewrwe"
}
I get below error:
{
"error": {
"code": 400,
"message": "Request contains an invalid argument.",
"status": "INVALID_ARGUMENT"
}
}
Any help would be appreciated.
try this:
{
"displayName": "alline",
"packageName": "com.alline.app"
}

Unable to create a WebToken for the Web App iframe using google-api-php-client

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.

Google Play Developer API | Reply to Reviews

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.

Strange Google Play Batch IAP API Error

According to the documentation for the Google Play Developer API, I should be able to batch insert or update requests. However, I’m running into an issue where it appears that either the documentation is wrong, the API is broken, or I’m just missing something.
I’m POSTing to the URL: https://www.googleapis.com/androidpublisher/v2/applications/inappproducts/batch?access_token=<my token here>&autoConvertMissingPrices=true'
MyContent-Typeis set to:application/json
And the body of myPOST` is the following:
{
"entrys": [{
"batchId": "<my batch id>",
"methodName": "update",
"inappproductsupdaterequest": {
"inappproduct": {
"packageName": "<my package name>",
"sku": "<my product sku>",
"status": "active",
"purchaseType": "managedUser",
"defaultPrice": {
"priceMicros": "<my price>",
"currency": "USD"
},
"listings": {
"en-US": {
"title": "<my title> ",
"description": "<my description>"
}
},
"defaultLanguage": "en-US"
}
}
}]
}
When I POST this, I get the following error:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "required",
"message": "Required parameter: [entry[0].inappproductsUpdateRequest.package_name]",
"locationType": "parameter",
"location": "[entry[0].inappproductsUpdateRequest.package_name]"
}
],
"code": 400,
"message": "Required parameter: [entry[0].inappproductsUpdateRequest.package_name]"
}
}
If I’m reading this correctly, they want the package name parameter as a child element under inappproductsUpdateRequest. However, when I try moving or copying (tried both) "packageName": "<my package name>" as a child under inappproductsUpdateRequest, I get the error:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "invalid",
"message": "Unknown field name: packageName",
"locationType": "other",
"location": "entrys.inappproductsupdaterequest"
}
],
"code": 400,
"message": "Unknown field name: packageName"
}
}
I get the same error when I try package_name instead of packageName.
Any thoughts?
Have you tried the requested casing inappproductsUpdateRequest that the response shows? I'm guessing you do need snake case on package_name rather than packageName, but you may need to try both there too.

How to get all objects i.e posts on a page liked by a particular user i.e. 'me' with facebook open graph api?

I need to show all the posts/images from a particular facebook page that has been liked by the user. Now, the problem is I don't want to write nested requests for the graph response. This query returns the summary of the likes and it has a field that shows whether a user likes a particular object or not. Is there any way I can access this particular field?
My graph query is : {facebook-page-id}/posts?fields=full_picture,id,likes.limit(0).summary(true).
This gives data like this :
{
"data": [
{
"full_picture": "...",
"id": "462768487218398_522641711231075",
"likes": {
"data": [
],
"summary": {
"total_count": 6600,
"can_like": true,
"has_liked": false
}
}
},
{
"full_picture": "https://fbcdn-sphotos-a-...",
"id": "462768487218398_522640531231193",
"likes": {
"data": [
],
"summary": {
"total_count": 8860,
"can_like": true,
"has_liked": false
}
}
}
I need to access the "has_liked" field from the query so that when the data returns, it is already filtered according to the likes of the user.
There is currently no way to let the Graph API filter for you on the server side unfortunately. You'll have to do this on your client.

Categories

Resources