Google APIs Client Library for PHP - countryBlocked exception - php

I've created a web application which runs with the 'Google APIs Client Library'.
This worked perfectly for me for the last two years.
But since yesterday I am facing a huge problem.
If I want to access the analytics api the system returns:
Google_Service_Exception Object
(
[errors:protected] => Array
(
[0] => Array
(
[domain] => global
[reason] => countryBlocked
[message] => This service is not available from your region
)
)
[retryMap:Google_Service_Exception:private] => Array
(
[500] => -1
[503] => -1
[rateLimitExceeded] => -1
[userRateLimitExceeded] => -1
)
[message:protected] => Error calling GET https://www.googleapis.com/analytics/v3/management/accounts/~all/webproperties/~all/profiles: (403) This service is not available from your region
)
I've checked the logs and made 50 requests the last 30 days so spamming could not be the reason for the block.
When I run it from a different Server it runs just fine.
Can anyone explain why this is happening and how I can bypass it?

Related

Facebook message send API

I am trying to develop PHP Application through which I want to send message to any individual Facebook user.
I am using below API: https://developers.facebook.com/docs/messenger-platform/send-api-reference/text-message
I am following this one while developing my app: http://www.phpgang.com/facebook-messenger-api-for-pages-using-curl-php_3929.html.
But when I am running my application it throws error:
Array ( [error] => Array ( [message] => (#100)
No matching user found [type] => OAuthException [code] => 100
[error_subcode] => 2018001 [fbtrace_id] => Ha3u2Mvk1ZF ) )
Please somebody help, I am stuck in this.

Is it possible to call rest API using PHP, inside GAE for putting data at pull queue?

Is it possible to call rest API using PHP, inside GAE for putting data at pull queue ??
I am trying to call rest api to put data at pull queue but I get an error
Array
(
[error] => Array
(
[errors] => Array
(
[0] => Array
(
[domain] => global
[reason] => forbidden
[message] => you are not allowed to make this api call
)
)
[code] => 403
[message] => you are not allowed to make this api call
)
)
You might want to try my PHP Pull Queue library for App Engine.
https://github.com/tomwalder/php-appengine-pull-queue
It's in very early ALPHA, but might work for you.
Removes the need for the REST API entirely. Uses native Google Protocol Buffers (same as the Python/Java/etc. runtimes)
Tom

YouTube API v3 stopped returning status.publishAt

When I request the video resource (using the official PHP library) example:
$youtube->videos->listVideos($ytVideoID, "snippet, contentDetails, status");
the API stopped returning status.publishAt couple months ago.
I am getting only this now:
[status] => Array
(
[uploadStatus] => processed
[privacyStatus] => private
[license] => youtube
[embeddable] => 1
[publicStatsViewable] => 1
)
I need the response to look something like this:
[status] => Array
(
[publishAt] => '2015-07-15T22:45:00'
[uploadStatus] => processed
[privacyStatus] => private
[license] => youtube
[embeddable] => 1
[publicStatsViewable] => 1
)
I did not change anything in my code, the API just stopped returning the publishAt parameter one day. I did not managed to find any reference to any change in the API.
All the videos I am trying to load, have status: scheduled (private), so the publishAt parameter should be there.
Reported this internally. https://code.google.com/p/gdata-issues/issues/detail?id=7447
I will update with solution.

Fetch Report using GoodData API

I have created a report on my GoodData UI. Now I want to fetch this report using the API. I spent hours digging the API docs but I am unable to find a simple way to do so.
If I try gdc/execute/raw/, it returns
[error] => Array
(
[parameters] => Array
(
[0] => execute
)
[requestId] => 53fPgKcFdkjf8PZ5:4n6x9lp9vk3ydbvs
[component] => GDC
[errorClass] => GDC::Exception::NotFound
[message] => resource %s not found
)
If I try gdc/xtab2/executor3 it returns
[error] => Array
(
[parameters] => Array
(
[0] => report_req
[1] => STRUCTURE INVALID - name of structure:'ReportReq'(tag:report_req), /report_req/ExecutionObject: Object does not match any alternative. Alternatives tried : [STRUCTURE INVALID - name of structure:'ReportReq' ...]
)
[requestId] => a0yRpNUpCPRsbPS0:6nagmwaw61h5g2bn
[component] => Apache::REST
[errorClass] => GDC::Exception::User
[message] => Checking '%s', result %s
)
Your requests got 404 and 400 statuses respectively.
When you tried to use 'gdc/execute/raw/' the call that reached our side was: "request="POST /gdc/execute/raw/ HTTP/1.1"", instead of that it should look like "POST /gdc/app/projects/{your_project_id}/execute/raw/ HTTP/1.1", that's the reason your are getting a 'NotFound' error. Regarding 'gdc/xtab2/executor3' there's apparently something wrong within the body of the call.
Please post your calls here, their bodies and how exactly you are making them, or open a support ticket with those details at https://support.gooddata.com/home so that we can investigate further.
Ultimately I followed this code piece https://gist.github.com/gnilrets/b9d2ce9890d8aaa07042
Much better than reading the whole GoodData API documentation.

Google API calls from amazon instances

Am using the amazon instances to call the google shortener URL API. whenever i calls the server it returns the below error
(
[error] => stdClass Object
(
[errors] => Array
(
[0] => stdClass Object
(
[domain] => usageLimits
[reason] => rateLimitExceeded
[message] => Rate Limit Exceeded
)
)
[code] => 403
[message] => Rate Limit Exceeded
)
)
Please assist me to fix this issue.Thanks in Advance.
That error typically reflects a quota limit being exceeded, or a client sending too many unbatcheded requests at once. Unless you activate billing, your rate will be limited.

Categories