android SocialAuthError Could not connect using SocialAuth? - android

i am using foursqure functionality in my application,one week ago my application was working with foursqure and i was getting sucessful login ,but now when i am using it again..,its giving me following error.
"meta":{
"code":410,
"errorType":"param_error",
"errorDetail":"The Foursquare API no longer supports requests that do not pass in a version parameter. For more details see https:\/\/developer.foursquare.com\/overview\/versioning"
},
"response":{
}
}
why i am getting this error.,it was working before few days but its not working now,i am unable to understand where i am doing wrong ,please help me for this,thankyou.

Your request is probably missing a parameter.
Foursquare has changed it's api as of January 28, 2014.
"Requests that do not include a v parameter will be rejected."
You will need to add a v parameter which will be a date that represents the "version" of the API you expect from Foursquare.
v=YYYYMMDD
Clients that wish to be robust against changes should always pass v=DATEVERIFIED (in the YYYYMMDD format) and watch for any deprecated responses coming back from the server.
For more information visit:
https://developer.foursquare.com/overview/versioning

Related

How to view result from JSON API in browser

I have a JSON API URL "http://myurl/getDataMethod" this takes a parameter "parameter1". How can I call this API in browser to view its result? Can I use JSFiddle to see the result on runtime? If not then can you provide code for viewing the result in Android app?
I tried calling the API in android App but I got error java.io.FileNotFoundException:, I don;t know why. Also my parameter is having # symbol which is getting converted to %40 when I call the URL through code in APP. I just want to view the data from this API by passing parameter, please help/advise. Thanks.
You can always use an API Tester tool like Postman for testing/viewing the response received from an API. Also if your API method is GET, you can even use a browser by passing the relevant query parameters.
When you try to call an API from a browser, the entire URL gets Encoded so # becomes %40
Use Postman software to access your api and its data anytime before you start coding so as to know the data structure and flow.
Refer to the Postman tutorials or official documentation to learn more about the working
Postman documentation link:
https://learning.getpostman.com/docs/postman/api-documentation/documenting-your-api/

HTTP GET: Get Google Calendar Event List via Google Calendar API v3 - invalid key error

I was using an HTTP GET action on Tasker on Android 4.4 for quite some time now in order to get my future google calendar events. This task no longer works due to Google shutting down the v2 API.
For the API v3 an authentification is needed. I tried to get a client key from the developer console. I created a new project and activated the calendar API for it. I then created a new client ID and do have this client ID with its corresponding key. How can I get a list of my (future) events from my personal Google calendar via HTTP GET and this authentification information? I'm trying to use:
https://www.googleapis.com/calendar/v3/calendars/my_calendar_ID/events?singleEvents=true&key=my_client_key
This returns an error:
{
"error": {
"errors": [
{
"domain": "usageLimits",
"reason": "keyInvalid",
"message": "Bad Request"
}
],
"code": 400,
"message": "Bad Request"
}
}
What am I doing wrong? Thanks in advance!
Usually this error is thrown when the key used in the request is invalid. In the request you have to use the public key not the client secret(when you want to send the API key). Here is the link for the documentation on how to get the public key to your application.
Also,here is the link for documentation about the HTTP request for events get request.
To anyone trying to achieve the same and who's not in the need to use API v3 at any cost:
There is still an option to get future events with a request similar to API v2. Therefore, use the private XML-code from the calendar settings and add the parameters you need. E.g.:
HTTP GET http://www.google.com/calendar/feeds/your_email/private-validation/basic?futureevents=true&max-results=1&singleevents=true&orderby=starttime&sortorder=ascending
I could not find any up-to-date documentation from Google about this but it's working. The main difference to API v2 is the "/basic?" at the end instead of the old "/full?". Otherwise most parameters seem to work fine.
futureevents=true - only shows future events
max-results=integer - only show integer number of results
singleevents=true - handly reoccuring events as single events
orderby=starttime - sort results by their starting time instead of last update
sortorder=ascending - well, sort order
"printpretty" seems not to be supported anymore. Also, the timestamp has a different look now. But still, all the information needed is included.
The example above shows the request for the next event in the calendar. This may be extended to multiple events (e.g. max-results=5). The other parameters are needed to show up the next events as expected instead of some seemingly random events. The problem with this method is of course that your private adress is used in the request which may be insecure in comparison to API v3.

What Is The Difference Between Google+ APIs and Google+ Domain APIs?

I am a little confused by these APIs. I am trying to integrate Google+ with my Android app and I am struggling a little. I have been successful at logging in a user using OAuth2, created a Verifier, obtained an accessToken and made a request to Google+ API.
Here is my line of code requesting to see the user information:
OAuthRequest request = new OAuthRequest(Verb.GET, "https://www.googleapis.com/plus/v1/people/me");
This successfully returns a jSON object containing my information/public.
Whenever I change the endpoint to this:
"https://www.googleapis.com/plusDomains/v1/circles/p4643b3a289c42c44"
attempting to use the PlusDomains, I get a forbidden message.
What I really want to do is manage circles for a user (simply add a page to their "Following" circle. That is all I need.
What am I doing wrong? Am I trying to use the wrong endpoint? Does Google+ API allow me to do POST requests?
Every piece of information is helpful.
Thanks in advance!
Google+API and Google+Domains API are different APIs (activating/allowing one does not activate/allow the other).
The Domains API can be considered as a more powerfull (more functionnalities) than Google+API.
See comparison of the two API here on the official doc.
Link here

Google Places API autocomplete - REQUEST_DENIED

I'm having a difficult time getting a valid autocomplete response from the Google Places API. I'm using code based on [their example}(https://developers.google.com/places/training/autocomplete-android) (which, interestingly is using a seemingly invalid country code of "uk").
I have enabled Places API in my Google Code Console.
My API key was generated when I first enabled the Maps API a couple of weeks ago, and the MapFragment I'm using is working perfectly, so I have no reason to suspect that the API key is invalid.
The URL I'm using is https://maps.googleapis.com/maps/api/place/autocomplete/json?input=New+York&sensor=false&key=my_valid_api_key&components=country:us
I always get {"status":"REQUEST_DENIED","predictions":[]} as my response.
I have verified multiple times that my url is formed correctly and adheres to the requirements of the Places API autocomplete endpoint, yet I do not get the response I'm expecting.
I have seen a number of suggestions of how to fix this on SO and elsewhere, but none of them have worked for me (i.e.-using http instead of https, use port 443, etc.) I have tried these in all reasonable combinations with no change in the response.
Please help me find what I'm doing wrong.
I tried the URL you provided with my key and it returned the expected results. I suspect you are using an Android key instead of a Browser key. Try creating and using a Browser key (under "Simple API Access").
Use the server or browser key instead of the iOS key. Keep the refers field blank to allow all refers.
Here is a sample project which does the same :https://github.com/manishnath/Autocomplete
Try this way https://maps.googleapis.com/maps/api/place/autocomplete/json?input=Aus&types=geocode&language=eng&key=your_APIKEY
also refer this like
http://codetheory.in/google-place-api-autocomplete-service-in-android-application/
REQUEST_DENIED indicates that your request was denied, generally because of lack of a sensor parameter.try this
https://maps.googleapis.com/maps/api/place/autocomplete/json?input=Vict&types=geocode&language=fr&sensor=true&key=AddYourOwnKeyHere

Google places autocomplete api - REQUEST_DENIED

I'm creating app that use autocomplete places google api.
And I don't know what is wrong but all the time I got responses like:
{
"predictions" : [],
"status" : "REQUEST_DENIED"
}
I send req : https://maps.googleapis.com/maps/api/place/autocomplete/json?input=Paris&types=geocode&language=fr&sensor=true&key=mykey
Documentation says :
REQUEST_DENIED indicates that your request was denied, generally because of lack of a sensor parameter.
I have sensor parameter, maybe it is something with api key.
Is there any page where can I get google's log :), to see why I got REQUEST_DENIED?
I use api key from :
http://code.google.com/intl/pl-PL/android/maps-api-signup.html
Maybe I have to get an api key from somewhere else.
You should be able to view your API Key by going to the API Console first:
https://code.google.com/apis/console
If you haven't yet, you will need to create a new "Project" and then enable the Predictions services first by using the On/Off switch.
Please post your results, I have a similar problem with getting the REQUEST_DENIED response, but I've already got the API key and I'm using the sensor parameter like their documentation states.
It is frustrating that Google doesn't give any sort of response code along with REQUEST_DENIED so you can see why it's denying it. This will be difficult to support and troubleshoot in a production environment if this randomly goes out without providing any details as to why.
Update:
I just found this works for me now, but only after changing my requests to GET requests instead of POST. For reasons unknown, Google returns REQUEST_DENIED for POST requests but allows the same request via GET. A quick test for you to see if this is your problem would be to put the URL together with your API key and other parameters and try it through your browser instead. If that works then just rewrite your Android code to use GET instead of POST and you should be all set.
It was solved for me when I exchanged the API key. I was using the one under Android device, I changed it to the one "Key for browser apps (with referers)" and it worked for me although I'm using Android Device.
I recommend using .getJson() to get an error message along with your response to know what is exactly wrong.
For my case in flutter: I used googlePlace!.autocomplete.getJson(value);
and i got the following response.
{ "error_message" : "You must enable Billing on the Google Cloud Project at https://console.cloud.google.com/project/_/billing/enable Learn more at https://developers.google.com/maps/gmp-get-started", "predictions" : [], "status" : "REQUEST_DENIED" }
That's the wrong API key. Follow the steps here to get the right one.
Make sure you API keys are generated correctly and that you have enabled the necessary APIS.
In my case, when designing iOS application - I need to enable Google Maps SDK for iOS, Google Places API for iOS
And most importantly, and without being mentioned by Google (in any other place as well) enable Google Places API Web Service.
With this, I ended a 2 day search for my pesky problem.
And, of course, make sure you use Key for server applications

Categories

Resources