Why Flickr api working for only some amount of time - android

I am trying to access public feed via
https://api.flickr.com/services/feeds/photos_public.gne
which I get from
https://www.flickr.com/services/feeds/docs/photos_public/
but It says "Flickr API:Page not found"
so how to proceed?
(note:api works sometimes!)

The limit is 3.600 request per hour
https://www.flickr.com/services/developer/api/

Related

Foursquare API: get set of featured photos

I'm working on Android app which uses Foursquare API. For fetching results I use /venues/explore endpoint. I want to make fancy detail screen with set of photos as Foursquare does(example) So, according to documentation, when I make request for nearby places, I use parameter venuePhotos=1, but always get one photo from the count result of featured photos (example). Is this a bug of API or I got it wrong :) ?
I'm using hurl.it for monitoring response from certain requests.
here is my API request(I removed my client id and secret):
GET https://api.foursquare.com/v2/venues/explore?venuePhotos=1&limit=10&radius=500&v=20160215&ll=55.693053,12.584903&client_secret=//&client_id=//
client_id:
client_secret:
limit: 10
ll: 55.693053,12.584903
radius: 500
v: 20160215
venuePhotos: 1
And I get always one photo in photo count for regular and featured photos in every venue. Response example:
{"reasons": {},"venue": {"id": "4c41ae26af052d7fbba97d79","name": "Femmeren - jazz-værtshus","contact": {},"location": {},"categories": [],"verified": false,"stats": {},"price": {},"rating": 8.2,"ratingColor": "73CF42","ratingSignals": 11,"allowMenuUrlEdit": true,"photos": {"count": 1,"groups": []},"hereNow": {},"featuredPhotos": {"count": 1,"items": []}},"tips": [],"referralId": "e-0-4c41ae26af052d7fbba97d79-3"},
Thanks for clarifying your question. The venuePhotos=1 parameter will include a single photo in the response from the venues/explore endpoint. This is extremely useful if you need to display a single photo in a list of venues. To get more photos for a venue, you need to hit the venues/photos endpoint and pass the venueId you want the photos from -> https://api.foursquare.com/v2/venues/VENUE_ID/photos

"Invalid state" on vimeo video upload from other android app

I am trying the upload videos into vimeo from my android application. The video is getting uploaded . But when the Delete request is called in order to get the video id , I am getting a response as "Invalid state". The same piece of code works in Htc X. Is this the issue with video codec format or something else ?
This is my piece of code for delete request
public void vimeoDelete() {
// Vimeo upload step 3
RestClient.mEndPoint.setUrl(APIHandler.VIMEO_BASE_URL);
RestClient.getVimeo().deleteVideo(mCompleteUri.substring(1), new Callback<Response>() {
#Override
public void success(Response response, Response response2) {
Log.i("Delete", "Done");
Log.i("Header", response2.getHeaders().toString());
Log.i("Body", response2.getBody().toString());
List<Header> aHeaders = response2.getHeaders();
for (Header aHeader : aHeaders) {
if (aHeader.getName().equals("Location")) {
mVideoUrlLocation = aHeader.getValue();
}
}
Log.i("Location", mVideoUrlLocation);
mFinalVideoUrl = mVideoUrlLocation.substring(8);
saveDetails();
}
#Override
public void failure(RetrofitError error) {
mProgress.dismiss();
}
});
}
Can anyone suggest a solution to this .
Regards
I just replied to the same issue over on the Vimeo forum - I had the same issue and am simply posting it here as there didn't seem to be a solution on this particular thread.
Also, regarding your post - there's not a lot of information provided in your post. Your delete request is not all that's required - the assumption would be that you created a valid ticket request, uploaded properly, THEN tried the del request you posted.
Vimeo post:
https://vimeo.com/forums/api/topic:278394
My solution:
I solved my version of the issue - I think Vimeo corrected some stuff on their API recently because my code did not have a bug and then suddenly one appeared recently. I would bet they added rate limiting on their API gateway or potentially overwriting existing requests to clean up old requests...
Anyhow, here is my fix:
In order to complete a video upload via "Resumable HTTP PUT uploads" (developer.vimeo.com/api/upload/videos), there are 5 steps.
I do everything but the upload through my PHP backend. I was requesting a ticket through PHP as to not expose some secret info through my modified JS frontend (github.com/websemantics/vimeo-upload) but I had not edited out the ticket request properly through the JS code, so the current bug was probably being triggered on that second invalid request (i.e. overwriting or rate limiting my initial valid request through PHP). Once I bypassed the JS "upload" function properly and jumped right to JS "sendFile_", the upload works properly again.
Hope that helps somebody out there!

Parse for Android: ParseInstallation.getCurrentInstallation().get(KEY_DEVICE_TOKEN) returns null

Parse for Android: Trying to get a device token in Parse but it keeps returning null. This code was working about 6 months back but lately have noticed this issue. Using the device token to subscribe to Parse later on. It just gets stuck in the while loop.I am using Parse 1.7.1 version. Even if I update the parse will this be the right way to get the device token?
private static final String KEY_DEVICE_TOKEN = "deviceToken";
boolean isTokenReady = false;
while (!isTokenReady) {
String deviceToken = (String) ParseInstallation.getCurrentInstallation().get(KEY_DEVICE_TOKEN);
if (!StringHelper.isNullOrEmpty(deviceToken)) {
isTokenReady = true;
} else {
sleep(1000);
}
}
ParsePush.subscribeInBackground("pushtoken_" + deviceToken);
You can use this, if you are retrieving a String:
ParseInstallation.getQuery().get(objectId).getString(KEY_DEVICE_TOKEN)
If you need to get the objectId from the default installation class:
ParseInstallation.getCurrentInstallation().getObjectId();
I'm using version 1.9.2. Hope this helps!
There's been 11 updates of the Android parse sdk. I would definitely update since there's lots of fixes.
Also, you shouldn't have to block your thread to wait for the device token. Did you forgot to save the installation before trying to get the deviceToken?
Like this:
ParseInstallation.getCurrentInstallation().save();
String deviceToken = (String) ParseInstallation.getCurrentInstallation().get( "deviceToken" );
Lastly, Im not sure why you would use a unique device token as push channels. You can use the deviceToken directly. So I would suggest not to subscribe to any channels and push notifications to selected devices using their deviceTokens.
I spent a lot of time on this problem too...
getInstallationId() seems to work. I use installationId to query installations and now it works OK

Nest ETA update not working: No write permission(s) for field(s): eta

I'm building an Application that integrates with your Nest devices (both the thermostat and the Nest Protect, but this issue is about the thermostat).
What I'm trying to do is set my thermostat's ETA to be in x minutes (2 hours for example so 120 minutes).
This is my code that I'm executing:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSSZ");
final String path = buildStructureFieldPath(structureID, Keys.STRUCTURE.ETA);
Structure.ETA eta = new Structure.ETA.Builder()
.setTripID(tripId)
.setEstimatedArrivalWindowBegin(sdf.format(estimatedArrivalBegin))
.setEstimatedArrivalWindowEnd(sdf.format(estimatedArrivalEnd))
.build();
sendRequest(path, eta.toJSON().toString(), listener);
The path is /structures/MY_STRUCTURE_ID/eta
Unfortunately that's not working. I'm always getting an error code -2 and error message: No write permission(s) for field(s): eta
And that's were it gets strange. No permission, but I did request the permission and I did an authenticate, which is successful, before launching the update call.
In the two attached screenshots you can see first my Nest Developer Account where you can find the ETA write permission and in the second you can see the logging from within my app (using the NestAPI as can be found on GitHub, just added the ETA feature myself).
Anyone have any idea on how to solve this issue?
Can you print out the exact JSON blob you're sending and post it here? (the value of eta.toJSON().toString())
Best guess is that it isn't formatted exactly correctly and as such is maybe attempting to write in such a way that doesn't adhere to the api-reference.
This is the format that it needs to match:
"eta": {
"trip_id": "myTripHome1024" ,
"estimated_arrival_window_begin": "2015-10-31T22:42:59.000Z" ,
"estimated_arrival_window_end": "2015-10-31T23:59:59.000Z"
}
Single line:
{"eta":{"trip_id":"myTripHome1024","estimated_arrival_window_begin":"2015-10-31T22:42:59.000Z","estimated_arrival_window_end": "2015-10-31T23:59:59.000Z"}}
To pinpoint exactly which field may be erroneous, try sending just one change at a time for each ie: structures/ID/eta/trip_id, etc for the others.
Useful JSON Validator: http://jsonlint.com/
You could also try to send it to /structures/MY_STRUCTURE_ID.json?auth=[TOKEN] instead of /structures/MY_STRUCTURE_ID/eta.

Livecode Interactive Ads Android

I'm working off Livecode v5.5.4 on the Android platform... I've been able to successfully publish apps, however, can not figure out how to install inneractive ads... As LC has partnered with inneractive they provide direction which suggests its as easy as...
mobileAdRegister "YOUR-AD-KEY" //I've replaced with my APP ID from inneractive
local tDetails
put "30" into tDetails["refresh"] // The advert refresh interval in seconds
put 25 into tDetails["age"] // The age of the target audience
put "male" into tDetails["gender"] // The expected gender of the target audience
mobileAdCreate "myAd1", "banner", (0,0), tDetails
however, nothing seems to work... any LC ppl out there with advice??... thanks
If there's no error reported from Mark's suggestion you might want to ensure it's visible with:
mobileAddSetVisible "myAd1",true
Failing that could you post the result of the mobileAds function and let us know if the adLoaded or adLoadFailed message is being sent to the object that executed mobileAdCreate?
You need to check the value of the result:
mobileAdCreate "myAd1","banner",(0,0),tDetails
put the result into rslt
if rslt is not empty then
beep
answer error rslt
end if
Kind regards,
Mark

Categories

Resources