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.
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.
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.
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 am trying to get subscription expiry date using purchase status API (https://www.googleapis.com/androidpublisher/v1.1/applications/packageName/subscriptions/subscriptionId/purchases/token) but getting below response.May I know what is the correct way to achieve my objective?
"error": {
"errors": [
{
"domain": "global",
"reason": "required",
"message": "Login Required",
"locationType": "header",
"location": "Authorization"
}
],
"code": 401,
"message": "Login Required"
}
Is anybody know how to do it?
Thanks in advance.