有人知道通过Twitter API是否可以获取所有的URL照片吗?例如,这个推文有4张照片 https://twitter.com/wtfbaile/status/652694439584993280/photo/1。我想在一次Twitter API请求中获取所有4个URL照片。
目前,为了实现这一点,我必须进行两次请求。4个URL照片仅在第二个请求中可用。
第一个请求:
结果:
{
"statuses": [
{
"metadata": {
"result_type": "recent",
"iso_language_code": "en"
},
"in_reply_to_status_id_str": null,
"in_reply_to_status_id": null,
"created_at": "Sat Oct 10 03:57:35 +0000 2015",
"in_reply_to_user_id_str": null,
"source": "<a href=\"http:\/\/twitter.com\/download\/iphone\" rel=\"nofollow\">Twitter for iPhone<\/a>",
"retweet_count": 1,
"retweeted": false,
"geo": null,
"in_reply_to_screen_name": null,
"is_quote_status": false,
"id_str": "652694439584993280",
"in_reply_to_user_id": null,
"favorite_count": 6,
"id": 6.5269443958499e+17,
"text": "some cool pictures from time square, brooklyn bridge and china town http:\/\/t.co\/kv0OVmoMoI",
"place": null,
"lang": "en",
"favorited": false,
"possibly_sensitive": false,
"coordinates": null,
"truncated": false,
"entities": {
"urls": [
],
"hashtags": [
],
"media": [
{
"display_url": "pic.twitter.com\/kv0OVmoMoI",
"indices": [
68,
90
],
"sizes": {
"small": {
"w": 340,
"h": 191,
"resize": "fit"
},
"large": {
"w": 1024,
"h": 576,
"resize": "fit"
},
"thumb": {
"w": 150,
"h": 150,
"resize": "crop"
},
"medium": {
"w": 600,
"h": 337,
"resize": "fit"
}
},
"id_str": "652694417070006272",
"expanded_url": "http:\/\/twitter.com\/wtfbaile\/status\/652694439584993280\/photo\/1",
"media_url_https": "https:\/\/pbs.twimg.com\/media\/CQ7WHTxWoAA8JXV.jpg",
"id": 6.5269441707001e+17,
"type": "photo",
"media_url": "http:\/\/pbs.twimg.com\/media\/CQ7WHTxWoAA8JXV.jpg",
"url": "http:\/\/t.co\/kv0OVmoMoI"
}
],
"user_mentions": [
],
"symbols": [
]
},
"contributors": null,
"user": {
"utc_offset": -10800,
"friends_count": 112,
"profile_image_url_https": "https:\/\/pbs.twimg.com\/profile_images\/652216850751688704\/kC7rdEm__normal.png",
"listed_count": 3,
"profile_background_image_url": "http:\/\/pbs.twimg.com\/profile_background_images\/378800000046929850\/8b7537e055b6c558c461f49cb1a3ad39.png",
"default_profile_image": false,
"favourites_count": 21009,
"description": "?? | 121614 ?? | phs '18 | ig: wtfbaile",
"created_at": "Sat Jun 30 02:41:11 +0000 2012",
"is_translator": false,
"profile_background_image_url_https": "https:\/\/pbs.twimg.com\/profile_background_images\/378800000046929850\/8b7537e055b6c558c461f49cb1a3ad39.png",
"protected": false,
"screen_name": "wtfbaile",
"id_str": "622435883",
"profile_link_color": "9266CC",
"is_translation_enabled": false,
"id": 622435883,
"geo_enabled": true,
"profile_background_color": "C0DEED",
"lang": "en",
"has_extended_profile": true,
"profile_sidebar_border_color": "FFFFFF",
"profile_text_color": "333333",
"verified": false,
"profile_image_url": "http:\/\/pbs.twimg.com\/profile_images\/652216850751688704\/kC7rdEm__normal.png",
"time_zone": "Atlantic Time (Canada)",
"url": null,
"contributors_enabled": false,
"profile_background_tile": true,
"profile_banner_url": "https:\/\/pbs.twimg.com\/profile_banners\/622435883\/1444187766",
"entities": {
"description": {
"urls": [
]
}
},
"statuses_count": 67181,
"follow_request_sent": false,
"followers_count": 600,
"profile_use_background_image": true,
"default_profile": false,
"following": false,
"name": "baile",
"location": "410",
"profile_sidebar_fill_color": "DDEEF6",
"notifications": false
}
}
],
"search_metadata": {
"max_id_str": "652694439584993280",
"since_id_str": "0",
"query": "some+cool+pictures+from+time+square%2C+brooklyn+bridge+and+china+town+filter%3Aimages+exclude%3Aretweets",
"count": 100,
"max_id": 6.5269443958499e+17,
"since_id": 0,
"completed_in": 0.027,
"refresh_url": "?since_id=652694439584993280&q=some%20cool%20pictures%20from%20time%20square%2C%20brooklyn%20bridge%20and%20china%20town%20filter%3Aimages%20exclude%3Aretweets&include_entities=1"
}
}
第二个:
结果:
{
"possibly_sensitive_appealable": false,
"extended_entities": {
"media": [
{
"display_url": "pic.twitter.com\/kv0OVmoMoI",
"indices": [
68,
90
],
"sizes": {
"small": {
"w": 340,
"h": 191,
"resize": "fit"
},
"large": {
"w": 1024,
"h": 576,
"resize": "fit"
},
"thumb": {
"w": 150,
"h": 150,
"resize": "crop"
},
"medium": {
"w": 600,
"h": 337,
"resize": "fit"
}
},
"id_str": "652694417070006272",
"expanded_url": "http:\/\/twitter.com\/wtfbaile\/status\/652694439584993280\/photo\/1",
"media_url_https": "https:\/\/pbs.twimg.com\/media\/CQ7WHTxWoAA8JXV.jpg",
"id": 6.5269441707001e+17,
"type": "photo",
"media_url": "http:\/\/pbs.twimg.com\/media\/CQ7WHTxWoAA8JXV.jpg",
"url": "http:\/\/t.co\/kv0OVmoMoI"
},
{
"display_url": "pic.twitter.com\/kv0OVmoMoI",
"indices": [
68,
90
],
"sizes": {
"small": {
"w": 340,
"h": 255,
"resize": "fit"
},
"large": {
"w": 1024,
"h": 768,
"resize": "fit"
},
"thumb": {
"w": 150,
"h": 150,
"resize": "crop"
},
"medium": {
"w": 600,
"h": 450,
"resize": "fit"
}
},
"id_str": "652694417128747008",
"expanded_url": "http:\/\/twitter.com\/wtfbaile\/status\/652694439584993280\/photo\/1",
"media_url_https": "https:\/\/pbs.twimg.com\/media\/CQ7WHT_W8AAgwUB.jpg",
"id": 6.5269441712875e+17,
"type": "photo",
"media_url": "http:\/\/pbs.twimg.com\/media\/CQ7WHT_W8AAgwUB.jpg",
"url": "http:\/\/t.co\/kv0OVmoMoI"
},
{
"display_url": "pic.twitter.com\/kv0OVmoMoI",
"indices": [
68,
90
],
"sizes": {
"small": {
"w": 340,
"h": 255,
"resize": "fit"
},
"large": {
"w": 1024,
"h": 768,
"resize": "fit"
},
"thumb": {
"w": 150,
"h": 150,
"resize": "crop"
},
"medium": {
"w": 600,
"h": 450,
"resize": "fit"
}
},
"id_str": "652694417195827200",
"expanded_url": "http:\/\/twitter.com\/wtfbaile\/status\/652694439584993280\/photo\/1",
"media_url_https": "https:\/\/pbs.twimg.com\/media\/CQ7WHUPWgAA14SE.jpg",
"id": 6.5269441719583e+17,
"type": "photo",
"media_url": "http:\/\/pbs.twimg.com\/media\/CQ7WHUPWgAA14SE.jpg",
"url": "http:\/\/t.co\/kv0OVmoMoI"
},
{
"display_url": "pic.twitter.com\/kv0OVmoMoI",
"indices": [
68,
90
],
"sizes": {
"small": {
"w": 340,
"h": 605,
"resize": "fit"
},
"large": {
"w": 575,
"h": 1024,
"resize": "fit"
},
"thumb": {
"w": 150,
"h": 150,
"resize": "crop"
},
"medium": {
"w": 575,
"h": 1024,
"resize": "fit"
}
},
"id_str": "652694417208385536",
"expanded_url": "http:\/\/twitter.com\/wtfbaile\/status\/652694439584993280\/photo\/1",
"media_url_https": "https:\/\/pbs.twimg.com\/media\/CQ7WHUSWIAAP9Ue.jpg",
"id": 6.5269441720839e+17,
"type": "photo",
"media_url": "http:\/\/pbs.twimg.com\/media\/CQ7WHUSWIAAP9Ue.jpg",
"url": "http:\/\/t.co\/kv0OVmoMoI"
}
]
},
"in_reply_to_status_id_str": null,
"in_reply_to_status_id": null,
"created_at": "Sat Oct 10 03:57:35 +0000 2015",
"in_reply_to_user_id_str": null,
"source": "<a href=\"http:\/\/twitter.com\/download\/iphone\" rel=\"nofollow\">Twitter for iPhone<\/a>",
"retweet_count": 1,
"retweeted": false,
"geo": null,
"in_reply_to_screen_name": null,
"is_quote_status": false,
"id_str": "652694439584993280",
"in_reply_to_user_id": null,
"favorite_count": 6,
"id": 6.5269443958499e+17,
"text": "some cool pictures from time square, brooklyn bridge and china town http:\/\/t.co\/kv0OVmoMoI",
"place": null,
"lang": "en",
"favorited": false,
"possibly_sensitive": false,
"coordinates": null,
"truncated": false,
"entities": {
"urls": [
],
"hashtags": [
],
"media": [
{
"display_url": "pic.twitter.com\/kv0OVmoMoI",
"indices": [
68,
90
],
"sizes": {
"small": {
"w": 340,
"h": 191,
"resize": "fit"
},
"large": {
"w": 1024,
"h": 576,
"resize": "fit"
},
"thumb": {
"w": 150,
"h": 150,
"resize": "crop"
},
"medium": {
"w": 600,
"h": 337,
"resize": "fit"
}
},
"id_str": "652694417070006272",
"expanded_url": "http:\/\/twitter.com\/wtfbaile\/status\/652694439584993280\/photo\/1",
"media_url_https": "https:\/\/pbs.twimg.com\/media\/CQ7WHTxWoAA8JXV.jpg",
"id": 6.5269441707001e+17,
"type": "photo",
"media_url": "http:\/\/pbs.twimg.com\/media\/CQ7WHTxWoAA8JXV.jpg",
"url": "http:\/\/t.co\/kv0OVmoMoI"
}
],
"user_mentions": [
],
"symbols": [
]
},
"contributors": null,
"user": {
"utc_offset": -10800,
"friends_count": 112,
"profile_image_url_https": "https:\/\/pbs.twimg.com\/profile_images\/652216850751688704\/kC7rdEm__normal.png",
"listed_count": 3,
"profile_background_image_url": "http:\/\/pbs.twimg.com\/profile_background_images\/378800000046929850\/8b7537e055b6c558c461f49cb1a3ad39.png",
"default_profile_image": false,
"favourites_count": 21009,
"description": "?? | 121614 ?? | phs '18 | ig: wtfbaile",
"created_at": "Sat Jun 30 02:41:11 +0000 2012",
"is_translator": false,
"profile_background_image_url_https": "https:\/\/pbs.twimg.com\/profile_background_images\/378800000046929850\/8b7537e055b6c558c461f49cb1a3ad39.png",
"protected": false,
"screen_name": "wtfbaile",
"id_str": "622435883",
"profile_link_color": "9266CC",
"is_translation_enabled": false,
"id": 622435883,
"geo_enabled": true,
"profile_background_color": "C0DEED",
"lang": "en",
"has_extended_profile": true,
"profile_sidebar_border_color": "FFFFFF",
"profile_text_color": "333333",
"verified": false,
"profile_image_url": "http:\/\/pbs.twimg.com\/profile_images\/652216850751688704\/kC7rdEm__normal.png",
"time_zone": "Atlantic Time (Canada)",
"url": null,
"contributors_enabled": false,
"profile_background_tile": true,
"profile_banner_url": "https:\/\/pbs.twimg.com\/profile_banners\/622435883\/1444187766",
"entities": {
"description": {
"urls": [
]
}
},
"statuses_count": 67181,
"follow_request_sent": false,
"followers_count": 600,
"profile_use_background_image": true,
"default_profile": false,
"following": false,
"name": "baile",
"location": "410",
"profile_sidebar_fill_color": "DDEEF6",
"notifications": false
}
}
我也尝试了使用twitter4j,但是也不起作用..我只能得到第一个URL的照片! 也许我做错了什么! 如果有人能帮助我!
public static void main(String[] args) throws Exception {
ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setDebugEnabled(true)
.setOAuthConsumerKey(TwitterConstantes.APIKEY)
.setOAuthConsumerSecret(TwitterConstantes.APIKEYSECRET)
.setOAuthAccessToken(TwitterConstantes.TOKEN)
.setOAuthAccessTokenSecret(TwitterConstantes.TOKENSECRET);
TwitterFactory tf = new TwitterFactory(cb.build());
Twitter twitter = tf.getInstance();
Query query = new Query("some cool pictures from time square, brooklyn bridge and china town");
QueryResult result = twitter.search(query);
System.out.println(result);
for (Status status : result.getTweets()) {
MediaEntity[] media = status.getMediaEntities(); //get the media entities from the status
for(MediaEntity m : media){ //search trough the entities
System.out.println(m.getMediaURL()); //get your url!
}
}
}