Instagram api: how to get photos containing like? - instagram

in my application, i enter a user name and get his photo.
(To get photos, i use: https://api.instagram.com/v1/users/3/media/recent/?access_token = ...)
Request returns only 20 pictures, how to get all photos user?
I want to get photos of this user which contain his likes.
How can this be done?
I have an idea to get all the pictures that have user and check each pictures does it have his like ?!
But I get only the data for the four member who delivered Like, although photo has 50 likes. (See the screenshot below). Why so ? How to fix it ?
Thanks for the help.

It's a two step process:
1) Perform a GET request to /users/user-id/media/recent inorder to get the most recent media published by a user.
2) Then perform a second GET request to /media/media-id/likes in order to get a list of users who have liked this media.
At this point you can record all the media-id's which contain likes by the specific person you want.
Here is the API for instagram users:
http://instagram.com/developer/endpoints/users/
Here is the API for instagram likes:
http://instagram.com/developer/endpoints/likes/
As for getting the entire history, I apologize but I'm unclear as to how to go about doing more than what they provide.
Please let me know if you have any questions!

Related

Can I GET a list of images not in an album without a bearer token?

I am writing a simple extension for phpBB. It will list thumbnails of images below the posting window to make insertion into the message easy. The user will setup their flickr nsid (with the help of a lookup function) and/or imgur username. When they create or reply to a thread a window is shown below the message window. They can select from any image host they have setup. A second drop-down will show the user's public albums. I would like to show all of the users 25 most recent images by default. If they want something more specific they can select an album from the list.
I can populate the album list and get a listing of the images in that album without using a bearer token. I would like to be able to do the same for all public images not in an album. It doesn't make sense that this would require additional authorization. Is this something that is possible? I would really like to stick to the un-authed methods.
Thanks.

Foursquare api doesn't return correct checkins information

I was tested foursquare api to use it in future projects and faced a strange problem.
I will explain it in example.
You check in via Swarm app to the place 1 and call venue here now endpoint
https://api.foursquare.com/v2/venues/559bac8f498effd9368131f6/herenow?v=20160606&oauth_token=<token>
you receive correct data, your user is displayed in items array field
"response":{"hereNow":{"count":2,"items":[{"id":"583ede91a36ecd3aeee51647","createdAt":1480515217,"type":"checkin","timeZoneOffset":120,"user":{"id":"355625527","firstName":"Dima","gender":"male","relationship":"self","photo":{"prefix":"https:\/\/irs0.4sqi.net\/img\/user\/","suffix":"\/blank_boy.png","default":true}},"likes":{"count":0,"groups":[]},"like":false},{"id":"583ede0a02b60e59094ddbc5","createdAt":1480515082,"type":"checkin","timeZoneOffset":120,"user":{"id":"43963436","firstName":"Ayhan","lastName":"B","gender":"male","photo":{"prefix":"https:\/\/irs0.4sqi.net\/img\/user\/","suffix":"\/43963436-UWAYC333GLM2YQ4H.jpg"}}}]}}
Then you check in to place 2 and call same endpoint. The check in data is correct, your user is in items array.
But when you check in back to place 1, your user are not included in items array
"response":{"hereNow":{"count":1,"items":[{"id":"583ede0a02b60e59094ddbc5","createdAt":1480515082,"type":"checkin","timeZoneOffset":120,"user":{"id":"43963436","firstName":"Ayhan","lastName":"B","gender":"male","photo":{"prefix":"https:\/\/irs0.4sqi.net\/img\/user\/","suffix":"\/43963436-UWAYC333GLM2YQ4H.jpg"}}}]}}
Instead foursquare thoughts that you are still checked in to place 2.
Also when you check in recent endpoint it will return that your recent check in is to place 1
"response":{"recent":[{"id":"583ee16ed8b0ed757138ec10","createdAt":1480515950,"type":"checkin","timeZoneOffset":120,"user":{"id":"355625527","firstName":"Dima","gender":"male","relationship":"self","photo":{"prefix":"https:\/\/irs0.4sqi.net\/img\/user\/","suffix":"\/blank_boy.png","default":true}},"venue":{"id":"559bac8f498effd9368131f6","name":"Львiвськi пляцки","contact":{"phone":"0936567878","formattedPhone":"093 656 7878","facebook":"288574604603052","facebookUsername":"lvivskipljacky","facebookName":"Львівські пляцки"},"location":{"address":"вул. Богдана Хмельницького, 10","lat":50.44546701910413,"lng":30.51702892776601,"labeledLatLngs":[{"label":"display","lat":50.44546701910413,"lng":30.51702892776601}],"postalCode":"01001","cc":"UA","city":"Kyiv","state":"Kyiv City","country":"Ukraine","formattedAddress":["вул. Богдана Хмельницького, 10","Kyiv, 01001"]},"categories":[{"id":"4bf58dd8d48988d16a941735","name":"Bakery","pluralName":"Bakeries","shortName":"Bakery","icon":{"prefix":"https:\/\/ss3.4sqi.net\/img\/categories_v2\/food\/bakery_","suffix":".png"},"primary":true}],"verified":false,"stats":{"checkinsCount":2782,"usersCount":1890,"tipCount":75},"url":"http:\/\/www.fest.lviv.ua\/uk\/restaurants\/lvivskipljacky\/","allowMenuUrlEdit":true,"beenHere":{"unconfirmedCount":0,"marked":false,"lastCheckinExpiredAt":0},"specials":{"count":0}},"source":{"name":"Swarm for Android","url":"https:\/\/www.swarmapp.com"},"photos":{"count":0,"items":[]},"posts":{"count":0,"textCount":0},"likes":{"count":0,"groups":[]},"like":false,"comments":{"count":0},"isMayor":false}]}
Did anyone also face this problem too? Or does foursquare api have some limitation for check-ins? I searched though web about it, but cannot find any useful information
A user will show in the venue "Here Now" for 3 hours after they checkin OR until they checkin at another venue. In your example, a user will not appear in Place 1s "here now" if their checkin pattern is Place 1 -> Place 2 -> Place 1. I'm not sure if this is a bug or done intentionally as a quality control.

flickr4java: can't retrieve list of people in photo

I have uploaded a test photoset in flicker (photoset) and the tagged a couple of users in each pic of the set.
Now I want to be able to retrieve the list of people in a given photo of that set, but the list always comes empty. This is my flickr4java code:
Flickr flickr;
PeopleInterface people=flickr.getPeopleInterface();
PersonTagList<PersonTag> persons= people.getList("17224159072");
for(PersonTag person:persons){
System.out.println("UsER:"+person.getUsername()) }
The debugger shows that the photo indeed contains people
hasPeople=True
and even the API explorer is able to retrieve the list but, as I said, persons is always empty. I have no trouble retrieving other information.
Any ideas?
Thanks

How to get all photos for a perticular user irrespective of date

How to get all posted photos in Instagram for a perticular user irrespective of date?
In my case Instagram media API returns 20 photos only.
API I used is:
https://api.instagram.com/v1/users/User-ID/media/recent/?client_id=CLIENT-ID
Thanks for your kind help.
Sanjeev Dutta
Yes I found the way..using MAX_ID we can get the next bunch of photos store MAX_ID in local variable and call API recursively to get next set of photos..might be helpful to others..

Instagram: Get photos from a tag after a specified photo

I'm working on an instagram scraper for something and I'm trying to figure out if it's possible to get all photos for a tag that have an id or timestamp later than the last one I have.
The instagram API docs are useless in that they don't have any real info on pagination (which I presume I'll have to abuse).
Does anyone have any ideas?
I've been slogging through the Instagram API for the last couple of days so here's my 2 cents worth:
As far as I can see it if you call the api with /tags/tag-name/media/recent it only return a list if items. If the amount exceeds about 25 you have to make another request with the pagination value returned in the previous request.
In order to gain some control I am initially iterating through all images and storing the results (just the URL not the actual image) to a database. Now I can manipulate however I want. When I feel like updating (I'm doing it manually now but could be a cron job or use the real-time api) I re-read all the images, compare to what I have in my DB and add possible new images. My app then reads out the url and info from my DB (which btw is a heck of a lot faster than going through the instagram api, which will only return about 25 images per request - regardless of any 'count' parameter value you put in the request url) and displays it.
I am developing this for a client who is afraid of people posting nsfw or whatever pics using their dedicated hashtag (for a contest) - with the above set up I can offer them an interface where they can check and mark images that are then displayed in the app.
One thing to watch out for is when a user deletes his picture; you will have to find a way to check for this. Currently (since I'm lazy) I load all images and use jquery to check for an error loading the image. If there is one I delete the image from the DB (via ajax).
I'm not sure the pagination is going to help you: as far as I can see the pagination response has no relation to the id's of the actual image objects on each page - so theoretically a pagination id that jumps to a certain page (i.e. date) might not work tomorrow if enough images have been deleted in the mean time.
to get all images instead of latest 20, just append &count=-1 to your api call - it's that simple.
In either case, there is a timestamp on each json object - or if you prefer, you can use max_tag_id
check out my post here: there any way to show more than 20 photos of the instagram API?
* Update April 2014: count=-1 is no longer available.

Resources