Hi Developers,
The launch comes with a batch of API enhancements, with a number of further API additions just around the corner (like creating and updating places, obviously a crucial component for many implementors).
The documentation in this area is a honestly a bit light at the moment, but we'll be offering some more comprehensive documentation going over suggested use cases, flows, and more in the coming days.
What matters most for you:
- GET geo/nearby_places is now GET geo/search, with some added functionality. This is a companion to GET geo/reverse_geocode, that's ideal for using in conjunction with a place selection UI.
- A query parameter called "query" lets you do textual matching when trying to find a place
- A query parameter called "ip" lets you do a lookup based on an IP address
- You can fine tune results with granularity, accuracy, and the contained_within parameter, which allows you to identify a place_id (matching something like a city), and only search for places within that place.
- <place> tags in XML output, "place" attribute in JSON output:
Tweets that have a place_id associated with them can now contain some additional information not available in the past, including some attributes that further describe the location.
Some common place/attributes you might start seeing:
- name
- street_address
- locality
- region
- phone
- postal_code
- twitter (a twitter account associated with the place)
- cross_streets
Attribute key names can be variant. These are just some of the attribute keys you will see, with much more to come.
Here's a quick XML representation of a status with a place:
<status>
<created_at>Mon Jun 14 23:30:14 +0000 2010</created_at>
<text>I'm testing out places integrations. Can you hear me Planet Houston? I'm at the Epicenter. (psyche)</text>
<source>web</source>
<truncated>false</truncated>
<in_reply_to_status_id></in_reply_to_status_id>
<in_reply_to_user_id></in_reply_to_user_id>
<favorited>false</favorited>
<in_reply_to_screen_name></in_reply_to_screen_name>
<user>
<id>819797</id>
<name>Taylor Singletary</name>
<screen_name>episod</screen_name>
<location>iPhone: 37.778181,-122.397971</location>
<description>Reality Technician, Developer Advocate at Twitter, displeased at Planet Houston</description>
<protected>false</protected>
<followers_count>1461</followers_count>
<profile_background_color>000000</profile_background_color>
<profile_text_color>000000</profile_text_color>
<profile_link_color>731673</profile_link_color>
<profile_sidebar_fill_color>007ffe</profile_sidebar_fill_color>
<profile_sidebar_border_color>bb0e79</profile_sidebar_border_color>
<friends_count>1420</friends_count>
<created_at>Wed Mar 07 22:23:19 +0000 2007</created_at>
<favourites_count>254</favourites_count>
<utc_offset>-28800</utc_offset>
<time_zone>Pacific Time (US & Canada)</time_zone>
<profile_background_tile>true</profile_background_tile>
<notifications>false</notifications>
<geo_enabled>true</geo_enabled>
<verified>false</verified>
<following>false</following>
<statuses_count>6477</statuses_count>
<lang>en</lang>
<contributors_enabled>false</contributors_enabled>
</user>
<geo/>
<coordinates/>
<id>a851ec943d3a27c5</id>
<name>Epicenter Cafe</name>
<full_name>Epicenter Cafe, San Francisco</full_name>
<place_type>poi</place_type>
<attributes>
<attribute>
<key>street_address</key>
<value>764 Harrison St</value>
</attribute>
</attributes>
<bounding_box>
<georss:polygon>37.781343 -122.399142 37.781343 -122.399142 37.781343 -122.399142 37.781343 -122.399142</georss:polygon>
</bounding_box>
<country code="US">The United States of America</country>
</place>
<contributors/>
<annotations/>
</status>
And here's the JSON representation:
{
"in_reply_to_user_id": null,
"geo": null,
"source": "web",
"created_at": "Mon Jun 14 23:30:14 +0000 2010",
"place": {
"place_type": "poi",
"country_code": "US",
"attributes": {
"street_address": "764 Harrison St"
},
"country": "The United States of America",
"full_name": "Epicenter Cafe, San Francisco",
"name": "Epicenter Cafe",
"id": "a851ec943d3a27c5",
"bounding_box": {
"type": "Polygon",
"coordinates": [[[ - 122.399142, 37.781343], [ - 122.399142, 37.781343], [ - 122.399142, 37.781343], [ - 122.399142, 37.781343]]]
}
},
"in_reply_to_screen_name": null,
"favorited": false,
"truncated": false,
"annotations": null,
"user": {
"description": "Reality Technician, Developer Advocate at Twitter, displeased at Planet Houston",
"lang": "en",
"statuses_count": 6477,
"profile_sidebar_fill_color": "007ffe",
"profile_background_tile": true,
"screen_name": "episod",
"contributors_enabled": false,
"profile_sidebar_border_color": "bb0e79",
"following": false,
"geo_enabled": true,
"notifications": false,
"created_at": "Wed Mar 07 22:23:19 +0000 2007",
"followers_count": 1460,
"friends_count": 1420,
"verified": false,
"profile_background_color": "000000",
"favourites_count": 254,
"protected": false,
"profile_text_color": "000000",
"name": "Taylor Singletary",
"time_zone": "Pacific Time (US & Canada)",
"location": "iPhone: 37.778181,-122.397971",
"id": 819797,
"utc_offset": -28800,
"profile_link_color": "731673"
},
"in_reply_to_status_id": null,
"coordinates": null,
"contributors": null,
"text": "I'm testing out places integrations. Can you hear me Planet Houston? I'm at the Epicenter. (psyche)"
},
Stay tuned for more information in the coming days and weeks on how to create places, more about how attributes about places work, and much more!
Thanks,
Taylor