Image loading From java server to android Listview - android

I am developing an android application. I need to load images from a java server to Android Recyclerview or Listview.
I understand the android side of things via this thread http://www.androidhive.info/2014/06/android-facebook-like-custom-listview-feed-using-volley/.
I need help with the Java Server side.I need to retrive Images via JSON array. like this
{
"feed": [
{
"id": 1,
"name": "National Geographic Channel",
"image": "http://api.androidhive.info/feed/img/cosmos.jpg",
"status": "\"Science is a beautiful and emotional human endeavor,\" says Brannon Braga, executive producer and director. \"And Cosmos is all about making science an experience.\"",
"profilePic": "http://api.androidhive.info/feed/img/nat.jpg",
"timeStamp": "1403375851930",
"url": null
},
{
"id": 2,
"name": "TIME",
"image": "http://api.androidhive.info/feed/img/time_best.jpg",
"status": "30 years of Cirque du Soleil's best photos",
"profilePic": "http://api.androidhive.info/feed/img/time.png",
"timeStamp": "1403375851930",
"url": "http://ti.me/1qW8MLB"
},
{
"id": 5,
"name": "Abraham Lincoln",
"image": null,
"status": "That some achieve great success, is proof to all that others can achieve it as well",
"profilePic": "http://api.androidhive.info/feed/img/lincoln.jpg",
"timeStamp": "1403375851930",
"url": null
},
{
"id": 3,
"name": "Discovery",
"image": "http://api.androidhive.info/feed/img/discovery_mos.jpg",
"status": "A team of Austrian scientists has developed a laser system that causes fruit flies to dance.",
"profilePic": "http://api.androidhive.info/feed/img/discovery.jpg",
"timeStamp": "1403375851930",
"url": "http://dsc.tv/xmMxD"
},
{
"id": 4,
"name": "Ravi Tamada",
"image": "http://api.androidhive.info/feed/img/nav_drawer.jpg",
"status": "Android Sliding Menu using Navigation Drawer",
"profilePic": "http://api.androidhive.info/feed/img/ravi_tamada.jpg",
"timeStamp": "1403375851930",
"url": "http://www.androidhive.info/2013/11/android-sliding-menu-using-navigation-drawer/"
},
{
"id": 6,
"name": "KTM",
"image": "http://api.androidhive.info/feed/img/ktm_1290.jpg",
"status": "\"The Beast\" KTM 1290 Super Duke",
"profilePic": "http://api.androidhive.info/feed/img/ktm.png",
"timeStamp": "1403375851930",
"url": ""
},
{
"id": 7,
"name": "Harley-Davidson",
"image": "http://api.androidhive.info/feed/img/harley_bike.jpg",
"status": "We’re assembling riders of every style, bike, and passion. If you ride with conviction, ride with us. You have 24 days to get ready for World Ride. Prepare by visiting:",
"profilePic": "http://api.androidhive.info/feed/img/harley.jpg",
"timeStamp": "1403375851930",
"url": "http://bit.ly/1wmBWaN"
},
{
"id": 8,
"name": "Rock & Girl",
"image": "http://api.androidhive.info/feed/img/rock.jpg",
"status": "A long time back...",
"profilePic": "http://api.androidhive.info/feed/img/rock_girl.jpg",
"timeStamp": "1403375851930",
"url": ""
},
{
"id": 8,
"name": "Gandhi",
"image": null,
"status": "An eye for an eye will make the whole world blind.",
"profilePic": "http://api.androidhive.info/feed/img/gandhi.jpg",
"timeStamp": "1403375851930",
"url": ""
},
{
"id": 9,
"name": "LIFE",
"image": "http://api.androidhive.info/feed/img/life_photo.jpg",
"status": "In 1965, LIFE photographer Bill Ray spent weeks with the Hells Angels, but his amazing photos never ran in the magazine",
"profilePic": "http://api.androidhive.info/feed/img/life.jpg",
"timeStamp": "1403375851930",
"url": "http://ti.me/1rfcQa4"
},
{
"id": 10,
"name": "Shakira",
"image": "http://api.androidhive.info/feed/img/shakira_la_la.png",
"status": "Download La La La (Brazil 2014) from iTunes:",
"profilePic": "http://api.androidhive.info/feed/img/shakira.jpg",
"timeStamp": "1403375851930",
"url": "http://smarturl.it/FWCalbum?IQid=sh"
},
{
"id": 11,
"name": "A. R. rahman",
"image": "http://api.androidhive.info/feed/img/ar_bw.jpg",
"status": "",
"profilePic": "http://api.androidhive.info/feed/img/ar.jpg",
"timeStamp": "1403375851930",
"url": ""
}
]
}
and how to get the Image url in from server side like this

You can used picasso library.
Picasso.with(context).load("http://api.androidhive.info/feed/img/cosmos.jpg").placeholder(R.drawable.no_image).into(imageView);

Related

How to pass object of json to other activity

I have this json
{
"results": [{
"gender": "male",
"name": {
"title": "mr",
"first": "isidro",
"last": "nogueira"
},
"location": {
"street": "3663 rua amazonas ",
"city": "mesquita",
"state": "rio de janeiro",
"postcode": 27744
},
"email": "isidro.nogueira#example.com",
"login": {
"username": "orangegoose315",
"password": "redalert",
"salt": "Dd3U7U03",
"md5": "325f1e8753222facba6ee63a5e2451de",
"sha1": "a63a0c544a956e235330b0ed76d11d3ad17c7979",
"sha256": "ddf18ffff89684617b2c7b8c5c175b9570cb6005916d9b4f3face802bd4f13a1"
},
"dob": "1967-04-23 04:58:32",
"registered": "2016-05-08 01:56:44",
"phone": "(11) 8368-8583",
"cell": "(17) 9743-3074",
"id": {
"name": "",
"value": null
},
"picture": {
"large": "https://randomuser.me/api/portraits/men/57.jpg",
"medium": "https://randomuser.me/api/portraits/med/men/57.jpg",
"thumbnail": "https://randomuser.me/api/portraits/thumb/men/57.jpg"
},
"nat": "BR"
}],
"info": {
"seed": "5b3dff5c25caaf7f",
"results": 1,
"page": 1,
"version": "1.1"
}
}
This data is of just one user. I have 50 of them.
I am still in learning stage and what I have done is that I have successfully listed all user in an activity. Now what I want to do is when I click on a user it should show it's related details in next activity...
List Users->Select Users->Show selected user details
I still don't know how to send data to other activity and display it.

How to obtain/parse JSONObject data with GSON

I am trying to use retrofit with android, which is kind of forcing me to use gson.
I am trying to get the data from the payload["response"]["docs"][0]["web_url"] in my code.
Issue : the key getResponse(), from below model class, always gives me {}. Whats the right way to handle this in android? Also note, the getCopyright() & getStatus() are working fine.
I am also providing the sample payload.
I have the model class like this :
public class ArticleSearchResponseModel {
#SerializedName("status") private String status;
#SerializedName("copyright") private String copyright;
#SerializedName("response") private JSONObject response;
public String getStatus() {
return status;
}
public String getCopyright() {
return copyright;
}
public JSONObject getResponse() {
return response;
}
public void setStatus(String status) {
this.status = status;
}
public void setCopyright(String copyright) {
this.copyright = copyright;
}
public void setResponse(JSONObject response) {
this.response = response;
}
}
My payload :
{
"response": {
"meta": {
"hits": 15987906,
"time": 108,
"offset": 0
},
"docs": [
{
"web_url": "http://www.nytimes.com/2016/11/13/insider/gender-issues-in-sharp-focus-at-the-times.html",
"snippet": "Susan Chira, senior correspondent for gender issues, and Susan Dominus, a Times Magazine writer, talk about men, women and coverage of their changing roles.",
"lead_paragraph": "Susan Chira, senior correspondent for gender issues, and Susan Dominus, a Times Magazine writer, talk about men, women and coverage of their changing roles.",
"abstract": null,
"print_page": null,
"blog": [],
"source": "The New York Times",
"multimedia": [
{
"width": 190,
"url": "images/2016/10/14/insider/14-Insider-SUSANIMAGE/14-Insider-SUSANIMAGE-thumbWide.jpg",
"height": 126,
"subtype": "wide",
"legacy": {
"wide": "images/2016/10/14/insider/14-Insider-SUSANIMAGE/14-Insider-SUSANIMAGE-thumbWide.jpg",
"wideheight": "126",
"widewidth": "190"
},
"type": "image"
},
{
"width": 600,
"url": "images/2016/10/14/insider/14-Insider-SUSANIMAGE/14-Insider-SUSANIMAGE-articleLarge.jpg",
"height": 400,
"subtype": "xlarge",
"legacy": {
"xlargewidth": "600",
"xlarge": "images/2016/10/14/insider/14-Insider-SUSANIMAGE/14-Insider-SUSANIMAGE-articleLarge.jpg",
"xlargeheight": "400"
},
"type": "image"
},
{
"width": 75,
"url": "images/2016/10/14/insider/14-Insider-SUSANIMAGE/14-Insider-SUSANIMAGE-thumbStandard.jpg",
"height": 75,
"subtype": "thumbnail",
"legacy": {
"thumbnailheight": "75",
"thumbnail": "images/2016/10/14/insider/14-Insider-SUSANIMAGE/14-Insider-SUSANIMAGE-thumbStandard.jpg",
"thumbnailwidth": "75"
},
"type": "image"
}
],
"headline": {
"main": "Gender Issues in Sharp Focus at The Times",
"content_kicker": "Insider Podcasts",
"kicker": "Insider Podcast"
},
"keywords": [
{
"rank": "1",
"is_major": "N",
"name": "subject",
"value": "Presidential Election of 2016"
},
{
"rank": "2",
"is_major": "N",
"name": "subject",
"value": "Women and Girls"
},
{
"rank": "3",
"is_major": "N",
"name": "subject",
"value": "Gender"
},
{
"rank": "4",
"is_major": "N",
"name": "subject",
"value": "Men and Boys"
},
{
"rank": "5",
"is_major": "N",
"name": "persons",
"value": "Trump, Donald J"
}
],
"pub_date": "2016-11-13T00:00:00Z",
"document_type": "article",
"news_desk": "Insider",
"section_name": "Times Insider",
"subsection_name": null,
"byline": {
"person": [
{
"organization": "",
"role": "reported",
"firstname": "Susan",
"rank": 1,
"lastname": "LEHMAN"
}
],
"original": "By SUSAN LEHMAN"
},
"type_of_material": "News",
"_id": "58011d9b253f0a0e44966174",
"word_count": null,
"slideshow_credits": null
},
{
"web_url": "http://www.nytimes.com/2016/10/25/realestate/doors-of-manhattan.html",
"snippet": "Even though they stand between us and the chaos of the city, the borough’s distinctive doors are easy to overlook.",
"lead_paragraph": "Even though they stand between us and the chaos of the city, the borough’s distinctive doors are easy to overlook.",
"abstract": null,
"print_page": null,
"blog": [],
"source": "The New York Times",
"multimedia": [],
"headline": {
"main": "Doors of Manhattan",
"content_kicker": "Voyeur",
"kicker": "Voyeur"
},
"keywords": [
{
"rank": "1",
"is_major": "N",
"name": "subject",
"value": "Real Estate and Housing (Residential)"
},
{
"rank": "2",
"is_major": "N",
"name": "subject",
"value": "Architecture"
},
{
"rank": "3",
"is_major": "N",
"name": "glocations",
"value": "Upper West Side (Manhattan, NY)"
},
{
"rank": "4",
"is_major": "N",
"name": "glocations",
"value": "Upper East Side (Manhattan, NY)"
}
],
"pub_date": "2016-10-25T00:00:00Z",
"document_type": "article",
"news_desk": "RealEstate",
"section_name": "Real Estate",
"subsection_name": null,
"byline": {
"person": [
{
"firstname": "Photographs",
"middlename": "George",
"lastname": "ETHEREDGE",
"rank": 1,
"role": "reported",
"organization": ""
}
],
"original": "Photographs by GEORGE ETHEREDGE for THE NEW YORK TIMES"
},
"type_of_material": "News",
"_id": "57e94175253f0a6bb40cbffc",
"word_count": null,
"slideshow_credits": null
},
{
"web_url": "http://cooking.nytimes.com/recipes/1018356-celery-toasts",
"snippet": "This was the first recipe that the chef and writer Gabrielle Hamilton brought to The Times as an Eat columnist for the Sunday magazine in 2016, a snack-tray-sandwich version of a celery-and-fennel salad served at her restaurant, Prune, in the East...",
"lead_paragraph": "This was the first recipe that the chef and writer Gabrielle Hamilton brought to The Times as an Eat columnist for the Sunday magazine in 2016, a snack-tray-sandwich version of a celery-and-fennel salad served at her restaurant, Prune, in the East Village. It calls for thick, white toasted Pullman bread spread wall to wall with unsalted butter, with slices of blue cheese neatly laid on top, below a mound of shaved celery and thinly sliced scallions dressed in garlic, olive oil, lemon juice and salt, and the whole shebang dusted in ground black pepper before being cut in halves or quarters. \"The ingredients come from the grocery store,\" she wrote in her column. \"These toasts are not expensive or intimidating, but they are outstanding.\"",
"abstract": null,
"print_page": null,
"blog": [],
"source": "du_recipe",
"multimedia": [
{
"credit": "Davide Luciano for The New York Times. Food stylist: Michelle Gatton. Prop stylist: Alex Brannian.",
"url": "images/2016/10/23/magazine/23eat/23eat-thumbStandard-v2.jpg",
"rank": "1",
"height": 75,
"subtype": "thumbnail",
"legacy": [],
"caption": "Celery Toasts",
"type": "image",
"width": 75
},
{
"credit": "Davide Luciano for The New York Times. Food stylist: Michelle Gatton. Prop stylist: Alex Brannian.",
"url": "images/2016/10/23/magazine/23eat/23mag-23eat-t_CA1-articleLarge.jpg",
"rank": "1",
"height": 400,
"subtype": "large",
"legacy": [],
"caption": "Celery Toasts",
"type": "image",
"width": 600
}
],
"headline": {
"main": "A Snack Tray to Gather the Family Around",
"name": "Celery Toasts"
},
"keywords": [],
"pub_date": "2016-10-23T00:00:00Z",
"document_type": "recipe",
"news_desk": null,
"section_name": null,
"subsection_name": null,
"byline": {
"person": [
{
"organization": "",
"role": "reported",
"firstname": "Gabrielle",
"rank": 1,
"lastname": "Hamilton"
}
],
"original": "Gabrielle Hamilton"
},
"type_of_material": "Recipe",
"_id": "580696f1253f0a7d028b0864",
"word_count": "101",
"slideshow_credits": null
},
{
"web_url": "http://www.nytimes.com/2016/10/23/books/review/the-story-behind-this-weeks-best-sellers.html",
"snippet": "Ruth Bader Ginsburg, whose anthology “My Own Words” is No. 12 in hardcover nonfiction, has something in common with Notorious B.I.G.",
"lead_paragraph": "Ruth Bader Ginsburg, whose anthology “My Own Words” is No. 12 in hardcover nonfiction, has something in common with Notorious B.I.G.",
"abstract": null,
"print_page": "30",
"blog": [],
"source": "The New York Times",
"multimedia": [
{
"width": 190,
"url": "images/2016/10/23/books/review/23inside-list/23inside-list-thumbWide.jpg",
"height": 126,
"subtype": "wide",
"legacy": {
"wide": "images/2016/10/23/books/review/23inside-list/23inside-list-thumbWide.jpg",
"wideheight": "126",
"widewidth": "190"
},
"type": "image"
},
{
"width": 75,
"url": "images/2016/10/23/books/review/23inside-list/23inside-list-thumbStandard.jpg",
"height": 75,
"subtype": "thumbnail",
"legacy": {
"thumbnailheight": "75",
"thumbnail": "images/2016/10/23/books/review/23inside-list/23inside-list-thumbStandard.jpg",
"thumbnailwidth": "75"
},
"type": "image"
}
],
"headline": {
"main": "The Story Behind This Week’s Best Sellers"
},
"keywords": [
{
"rank": "1",
"is_major": "N",
"name": "subject",
"value": "Books and Literature"
},
{
"rank": "2",
"is_major": "N",
"name": "persons",
"value": "Ginsburg, Ruth Bader"
}
],
"pub_date": "2016-10-23T00:00:00Z",
"document_type": "article",
"news_desk": "BookReview",
"section_name": "Books",
"subsection_name": "Book Review",
"byline": {
"person": [
{
"organization": "",
"role": "reported",
"firstname": "Gregory",
"rank": 1,
"lastname": "COWLES"
}
],
"original": "By GREGORY COWLES"
},
"type_of_material": "News",
"_id": "5800f337253f0a7985625011",
"word_count": null,
"slideshow_credits": null
},
{
"web_url": "http://www.nytimes.com/2016/10/23/books/review/ngugi-wa-thiongo-birth-of-a-dream-weaver.html",
"snippet": "A Kenyan considers his early years as a student and writer.",
"lead_paragraph": "A Kenyan considers his early years as a student and writer.",
"abstract": null,
"print_page": "25",
"blog": [],
"source": "The New York Times",
"multimedia": [
{
"width": 190,
"url": "images/2016/10/23/books/review/23Wrong/23Wrong-thumbWide.jpg",
"height": 126,
"subtype": "wide",
"legacy": {
"wide": "images/2016/10/23/books/review/23Wrong/23Wrong-thumbWide.jpg",
"wideheight": "126",
"widewidth": "190"
},
"type": "image"
},
{
"width": 600,
"url": "images/2016/10/23/books/review/23Wrong/23Wrong-articleLarge.jpg",
"height": 400,
"subtype": "xlarge",
"legacy": {
"xlargewidth": "600",
"xlarge": "images/2016/10/23/books/review/23Wrong/23Wrong-articleLarge.jpg",
"xlargeheight": "400"
},
"type": "image"
},
{
"width": 75,
"url": "images/2016/10/23/books/review/23Wrong/23Wrong-thumbStandard.jpg",
"height": 75,
"subtype": "thumbnail",
"legacy": {
"thumbnailheight": "75",
"thumbnail": "images/2016/10/23/books/review/23Wrong/23Wrong-thumbStandard.jpg",
"thumbnailwidth": "75"
},
"type": "image"
}
],
"headline": {
"main": "Ngugi wa Thiong’o on Starting Out as a Writer",
"content_kicker": "Nonfiction",
"kicker": "Nonfiction",
"print_headline": "A Long Look Back"
},
"keywords": [
{
"rank": "2",
"is_major": "N",
"name": "persons",
"value": "Thiong'o, Ngugi wa"
},
{
"rank": "3",
"is_major": "N",
"name": "subject",
"value": "Books and Literature"
},
{
"rank": "4",
"is_major": "N",
"name": "subject",
"value": "Writing and Writers"
}
],
"pub_date": "2016-10-23T00:00:00Z",
"document_type": "article",
"news_desk": "BookReview",
"section_name": "Books",
"subsection_name": "Book Review",
"byline": {
"person": [
{
"organization": "",
"role": "reported",
"firstname": "Michela",
"rank": 1,
"lastname": "WRONG"
}
],
"original": "By MICHELA WRONG"
},
"type_of_material": "Review",
"_id": "57ff4d1d253f0a6b9720abd2",
"word_count": null,
"slideshow_credits": null
},
{
"web_url": "http://cooking.nytimes.com/recipes/1018347-lemon-drizzle-cake",
"snippet": "This light and moist lemon poundcake has a crunchy sugar glaze that crystallizes on top, giving a contrasting texture to the soft crumb underneath. It’s an easy-to-make, crowd-pleasing cake that’s excellent on its own but takes well to...",
"lead_paragraph": "This light and moist lemon poundcake has a crunchy sugar glaze that crystallizes on top, giving a contrasting texture to the soft crumb underneath. It’s an easy-to-make, crowd-pleasing cake that’s excellent on its own but takes well to embellishments. A scoop of ice cream or sorbet, fruit compote and-or lemon curd are all wonderful alongside.",
"abstract": null,
"print_page": null,
"blog": [],
"source": "du_recipe",
"multimedia": [
{
"credit": "Andrew Scrivani for The New York Times",
"url": "images/2016/10/19/dining/19BAKEOFF2/19BAKEOFF2-thumbStandard.jpg",
"rank": "1",
"height": 75,
"subtype": "thumbnail",
"legacy": [],
"type": "image",
"width": 75
},
{
"credit": "Andrew Scrivani for The New York Times",
"url": "images/2016/10/19/dining/19BAKEOFF2/19BAKEOFF2-articleLarge.jpg",
"rank": "1",
"height": 400,
"subtype": "large",
"legacy": [],
"type": "image",
"width": 600
}
],
"headline": {
"main": "‘The Great British Bake Off’ Changes the Way the British Bake",
"name": "Lemon Drizzle Cake"
},
"keywords": [],
"pub_date": "2016-10-19T00:00:00Z",
"document_type": "recipe",
"news_desk": null,
"section_name": null,
"subsection_name": null,
"byline": {
"person": [
{
"organization": "",
"role": "reported",
"firstname": "Melissa",
"rank": 1,
"lastname": "Clark"
}
],
"original": "Melissa Clark"
},
"type_of_material": "Recipe",
"_id": "58066d7c253f0a7d028b07d0",
"word_count": "250",
"slideshow_credits": null
}
]
},
"status": "OK",
"copyright": "Copyright (c) 2013 The New York Times Company. All Rights Reserved."
}
Before start, I'm not familiar with retrofit.
If you want serialize/unserialize json to pojo, you better make pojo object.
class Response {
Meta meta;
List<Docs> docs;
}
class Docs {
String webUrl;
Mutimedia multimedia;
...
}
The issue the key getResponse(), from below model class, always gives me {} happens because gson cannot determine proper object to convert json to plain old java object.
In order to make your Response model class use http://www.jsonschema2pojo.org/.
Making POJO simple
you no need to make exact structure in model
you can go ahead with your code just need small change
Use
#SerializedName("response") private JsonObject response;
instead of
#SerializedName("response") private JSONObject response;
and in the import
import com.google.gson.JsonObject;

missing fields in profile from LinkedIn Android SDK

I'm using the LinkedIn Android SDK downloaded from here (version 1.1.4) and have set up authentication already like this:
liSessionManager.init(activity,
Scope.build(Scope.R_BASICPROFILE, Scope.R_EMAILADDRESS), authListener);
and everything works fine, but when I want to get the profile data, returned json is missing fields like summary in job positions and general summary for the given profile.
The request is made like this:
apiHelper.getRequest(activity, GET_LINKED_IN_PROFILE_URL, apiListener);
where GET_LINKED_IN_PROFILE_URL is https://api.linkedin.com/v1/people/~:(id,first-name,last-name,email-address,formatted-name,headline,location,industry,current-share,num-connections,num-connections-capped,summary,specialties,positions,phone-numbers,public-profile-url,picture-url,picture-urls::(original))?format=json.
The response is as follows:
{
"currentShare": {
"author": {
"firstName": "Name",
"id": "***",
"lastName": "Surname"
},
"comment": "I've made my LinkedIn profile visual! Check it out and get yours!",
"content": {
"description": "some descr",
"eyebrowUrl": "http://url.com/me/7827748?m_in&user_id=***",
"resolvedUrl": "http://url.com/me/7827748?m_in&user_id=***",
"shortenedUrl": "http://linkedin.in/url",
"submittedImageUrl": "https://www.url.com/logo-share.png",
"submittedUrl": "https://www.url.com/me/***?m_in&user_id=***",
"thumbnailUrl": "https://media.licdn.com/media-proxy/ext?w=80&h=100&f=&hash=usON2E%2F4FqEGtIT5dsadsaaD&ora=1%2CaFBCTXdkRmpGL2lvQUFBPQ%2CxAVta5g-0R65wFUbzx0776dsaulz-50hKCpDZEXX8HmW3uZHfgasdapuGJ-n08ARIZ3Bex1svPLf5AmX_Us3r",
"title": "title"
},
"id": "s1291360434",
"source": {
"application": {"name": "app"},
"serviceProvider": {"name": "LINKEDIN"}
},
"timestamp": 1346884888000,
"visibility": {"code": "anyone"}
},
"emailAddress": "***#gmail.com",
"firstName": "Name",
"formattedName": "Name Surname",
"headline": "Job position",
"id": "***",
"industry": "Computer Software",
"lastName": "Surname",
"location": {
"country": {"code": "pl"},
"name": "Wroclaw, Lower Silesian District, Poland"
},
"numConnections": 229,
"numConnectionsCapped": false,
"pictureUrl": "https://media.licdn.com/mpr/mprx/photourl",
"pictureUrls": {
"_total": 1,
"values": ["https://media.licdn.com/mpr/mprx/photourl"]
},
"positions": {
"_total": 1,
"values": [{
"company": {
"id": 2795963,
"industry": "Information Technology & Services",
"name": "Company 1",
"size": "11-50",
"type": "Privately Held"
},
"id": ***,
"isCurrent": true,
"location": {
"country": {
"code": "pl",
"name": "Poland"
},
"name": "Wroclaw, Lower Silesian District, Poland"
},
"startDate": {
"month": 1,
"year": 2016
},
"title": "Job position"
}]
},
"publicProfileUrl": "https://www.linkedin.com/in/username/41219"
}
When I use the same url in the API Console at https://apigee.com/console/linkedin, the response looks like this:
{
"currentShare": {
"author": {
"firstName": "Name",
"id": "***",
"lastName": "Surname"
},
"comment": "I've made my LinkedIn profile visual! Check it out and get yours!",
"content": {
"description": "some descr",
"eyebrowUrl": "http://url.com/me/7827748?m_in&user_id=***",
"resolvedUrl": "http://url.com/me/7827748?m_in&user_id=***",
"shortenedUrl": "http://linkedin.com/shortened",
"submittedImageUrl": "https://www.url.com/logo-share.png",
"submittedUrl": "https://www.url.com/me/***?m_in&user_id=***",
"thumbnailUrl": "https://media.licdn.com/media-proxy/ext?w=80&h=100&f=&hash=usON2E%2F4FqEGtIT5dsadsaaD&ora=1%2CaFBCTXdkRmpGL2lvQUFBPQ%2CxAVta5g-0R65wFUbzx0776dsaulz-50hKCpDZEXX8HmW3uZHfgasdapuGJ-n08ARIZ3Bex1svPLf5AmX_Us3r",
"title": "title"
},
"id": "s1291360434",
"source": {
"application": {
"name": "app"
},
"serviceProvider": {
"name": "LINKEDIN"
}
},
"timestamp": 1346884888000,
"visibility": {
"code": "anyone"
}
},
"emailAddress": "***#gmail.com",
"firstName": "Name",
"formattedName": "Name Surname",
"headline": "Job position",
"id": "***",
"industry": "Computer Software",
"lastName": "Surname",
"location": {
"country": {
"code": "pl"
},
"name": "Wroclaw, Lower Silesian District, Poland"
},
"numConnections": 229,
"numConnectionsCapped": false,
"pictureUrl": "https://media.licdn.com/mpr/mprx/photourl",
"pictureUrls": {
"_total": 1,
"values": [
"https://media.licdn.com/mpr/mprx/photourl"
]
},
"positions": {
"_total": 1,
"values": [
{
"company": {
"id": 2795963,
"industry": "Information Technology & Services",
"name": "Company 1",
"size": "11-50",
"type": "Privately Held"
},
"id": 22222,
"isCurrent": true,
"location": {
"country": {
"code": "pl",
"name": "Poland"
},
"name": "Wroclaw, Lower Silesian District, Poland"
},
"startDate": {
"month": 1,
"year": 2016
},
"title": "Job position"
},
{
"company": {
"id": 611639,
"industry": "Internet",
"name": "Company 2",
"size": "51-200",
"type": "Privately Held"
},
"endDate": {
"month": 2,
"year": 2016
},
"id": 1111,
"isCurrent": false,
"location": {
"country": {
"code": "pl",
"name": "Poland"
},
"name": "Wroclaw, Lower Silesian District, Poland"
},
"startDate": {
"month": 4,
"year": 2015
},
"summary": "Summary of job",
"title": "Senior Android Developer"
},
{
"company": {
"id": 1111,
"industry": "Internet",
"name": "Company 2",
"size": "51-200",
"type": "Privately Held"
},
"endDate": {
"month": 3,
"year": 2015
},
"id": 111111,
"isCurrent": false,
"location": {
"country": {
"code": "pl",
"name": "Poland"
},
"name": "Wroclaw, Lower Silesian District, Poland"
},
"startDate": {
"month": 4,
"year": 2014
},
"summary": "short summary",
"title": "Android/iOS Developer"
},
{
"company": {
"id": 11111,
"industry": "Internet",
"name": "Company 2",
"size": "51-200",
"type": "Privately Held"
},
"endDate": {
"month": 3,
"year": 2014
},
"id": 1111111,
"isCurrent": false,
"location": {
"country": {
"code": "pl",
"name": "Poland"
},
"name": "Wroclaw, Lower Silesian District, Poland"
},
"startDate": {
"month": 2,
"year": 2013
},
"summary": "android applications developer.\ncross-platform mobile application testing (iOS, Windows 8)",
"title": "Junior Android Developer"
},
{
"company": {
"id": 3333,
"industry": "Information Technology & Services",
"name": "Company 3",
"size": "201-500",
"type": "Privately Held"
},
"endDate": {
"month": 11,
"year": 2011
},
"id": 3333333,
"isCurrent": false,
"location": {
"country": {
"code": "pl",
"name": "Poland"
},
"name": "Warsaw, Masovian District, Poland"
},
"startDate": {
"month": 7,
"year": 2011
},
"summary": "Intern ",
"title": "Internship"
}
]
},
"publicProfileUrl": "https://www.linkedin.com/in/username/41219"
}
Which shows that the Android SDK's response is missing some job positions and a summary for a profile.
It turned out LinkedIn is not returning fields that have no value. If you don't setup a summary in your profile, then there won't be a field named summary in the response. (Don't expect anything like "summary" : null)
Additionally only first position is returned for a given profile while using r_basicprofile scope. It's confusing since this one profile is returned in the positions array.
based on https://developer.linkedin.com/docs/fields/basic-profile :
Positions - An object representing the member's current position.
See Position Fields for a description of the fields available within this object.
The reason why the API Console's response was having all job positions is because it asked for r_fullprofile scope while authenticating

get post which contain hashtag android facebook android

I am trying to fetch the json data of the post which contains specific hashtag
for eg if u go to this fb link u will get the post which contaihs the hashtag https://www.facebook.com/hashtag/tajmahal
I have treid various ways
graph.facebook.com/search?q=%23tajmahal&type=post&access_token={ACCESS_TOKEN}
It gives Post search has been deprecated","type":"OAuthException"
graph.facebook.com/search?q=%23tajmahal&type=place&access_token={ACCESS_TOKEN}
It gives all the places which have tajmahal in their name
"category": "Landmark",
"category_list": [
{
"id": "209889829023118",
"name": "Landmark"
}
],
"location": {
"street": "",
"city": "Agra",
"state": "",
"country": "India",
"zip": "",
"latitude": 27.174799,
"longitude": 78.042111
},
"name": "Tajmahal",
"id": "108571669173264"
},
{
"category": "Local business",
"category_list": [
{
"id": "165679780146824",
"name": "Food & Restaurant"
}
],
"location": {
"street": "agra",
"city": "Agra",
"state": "",
"country": "India",
"zip": "",
"latitude": 27.192731328938,
"longitude": 78.026342496684
},
"name": "Tajmahal Agra",
"id": "339553856132817"
},
{
"category": "Automobiles and parts",
"category_list": [
{
"id": "149998721725634",
"name": "Automotive Repair"
}
],
"location": {
"street": "opposite to MARS Shopping, Shafi street, Rayyan Jadheedh",
"city": "Al Rayyan",
"state": "",
"country": "Qatar",
"zip": "001",
"latitude": 25.2902476,
"longitude": 51.4204253
},
"name": "Tajmahal automobiles",
"id": "191178317741786"
so anyone can suggest a way to get the post which have certain hashtag from facebook?
Facebook closed access to that endpoint
http://thenextweb.com/facebook/2015/04/03/facebook-might-be-shutting-down-access-to-hashtags-in-its-api/

JSON parsing on Android [duplicate]

This question already has answers here:
Closed 11 years ago.
Possible Duplicate:
Parsing a 2D JSON array in Android and then putting them in intents and getting their values in another activity
I am making an Android applications in which I am getting the following response. I need to parse this using JSON parsing and take these to next activity:
[
{
"sno": "131",
"email": "ruma.riwaz#gmail.com",
"place": "43",
"description": "",
"image": "",
"time": "1316156532"
},
{
"sno": "130",
"email": "ruma.riwaz#gmail.com",
"place": "38",
"description": "",
"image": "",
"time": "1316153291"
},
{
"sno": "365",
"email": "ruma.riwaz#gmail.com",
"place": "86",
"description": "",
"image": "",
"time": "1318427821"
},
{
"sno": "129",
"email": "ruma.riwaz#gmail.com",
"place": "39",
"description": "",
"image": "",
"time": "1316152314"
},]
How do I fix this problem?
I think you should try searching it on Google or in StackOverFlow it self (this could be duplicate question)....
any way;
You should use either Gson or Jackson

Categories

Resources