Как я могу получить позицию (широта, долгота) регистрации на четыре квадрата, опубликованной в твиттере? - PullRequest
5 голосов
/ 09 января 2012
  1. Я ищу с помощью твиттер-API все публичные твиты с "4sq.com":

    http://search.twitter.com/search.json?q=4sq.com

, поэтому я получаю все чеки- на Foursquare, который на самом деле поделился в Twitter.

{"created_at":"Sun, 08 Jan 2012 20:05:27 +0000","from_user":"fenavergara","from_user_id":50876086,"from_user_id_str":"50876086","from_user_name":"Fernanda Vergara Ch","geo":null,"id":156104246239051776,"id_str":"156104246239051776","iso_language_code":"lt","metadata":{"result_type":"recent"},"profile_image_url":"http://a2.twimg.com/profile_images/1708744785/image_normal.jpg","profile_image_url_https":"https://si0.twimg.com/profile_images/1708744785/image_normal.jpg","source":"<a href="http://foursquare.com" rel="nofollow">foursquare</a>","text":"I'm at Roca Roja (Antofagasta) http://t.co/DIKdYGwD","to_user":null,"to_user_id":null,"to_user_id_str":null,"to_user_name":null},{"created_at":"Sun, 08 Jan 2012 20:05:27 +0000","from_user":"Fabioland76","from_user_id":357326176,"from_user_id_str":"357326176","from_user_name":"Fabio Landini","geo":null,"id":156104246104821760,"id_str":"156104246104821760","iso_language_code":"no","metadata":{"result_type":"recent"},"profile_image_url":"http://a3.twimg.com/profile_images/1506958638/profiloJPG_normal.jpg","profile_image_url_https":"https://si0.twimg.com/profile_images/1506958638/profiloJPG_normal.jpg","source":"<a href="http://foursquare.com" rel="nofollow">foursquare</a>","text":"I'm at Burger King (Gallerie Cantoni, Legnano) http://t.co/rU1jIJ4A","to_user":null,"to_user_id":null,"to_user_id_str":null,"to_user_name":null}

С помощью этих твитов Foursquare предоставляет ссылку (например, такую: http://t.co/DIKdYGwD), где я могу увидеть положение регистрации на карте (если я отображаю ссылку навеб-страница).

Как программно получить широту и долготу непосредственно из списка твитов?

Идея: Нужно ли получать ссылку на веб-странице и анализировать ее, чтобы получить широтуи долгота?

РЕДАКТИРОВАТЬ: я не хочу использовать Twitter геокод

Ответы [ 2 ]

9 голосов
/ 10 января 2012

На самом деле, здесь есть гораздо более приятное решение, если вы хотите использовать API-интерфейс foursquare. Тот, который не зависит от того, что пользователь включил геотегирование в Twitter.

Вы уже заметили, что ссылка в обновлении статуса перенаправляет на страницу четырехугольника. Вместо скрининга экрана, вы можете заметить, что в URL есть два ключевых элемента информации. Идентификатор регистрации и параметр с именем s (для подписи), который позволяет получить доступ к этой регистрации через API Foursquare.

https://foursquare.com/dens/checkin/4f0b3676e4b0e8ed3a590e41?s=MWHM3-0BsLXIJprfbALvOM606ZE&ref=tw

Например, в приведенном выше URL-адресе идентификатор регистрации равен 4f0b3676e4b0e8ed3a590e41 , а подпись MWHM3-0BsLXIJprfbALvOM606ZE

Используя конечную точку / checkins, вы можете получить полную информацию о регистрации (включая широту / длину места проведения). Dox здесь: https://developer.foursquare.com/docs/checkins/checkins

2 голосов
/ 09 января 2012

У вас уже есть то, что вы хотите, посмотрите в разделе "гео" в примере результатов поиска, которые вы разместили.Это null , потому что оно не заполнено (пользователь Twitter забывает включить Twitter в настройках, и все местоположения из foursquare игнорируются Twitter).

Вы можете фильтровать твитыпо местоположению, посмотрите документацию Twitter Dev .

UPD:

Если вы хотите получить местоположение даже вВ случае, если он не сохранен в твиттере, вы должны выполнить запрос к четырехугольной короткой ссылке и проанализировать информацию о месте (вы также можете украсть местоположение).Посмотрите на источник примера страницы 4sq.com (небольшая часть):

...
options['lat'] = 42.98758759825106;
options['lng'] = -71.50742411613464;
options['fuzzy'] = false;
options['venue'] = {"id":"v4f08df964fc62d44946f058a","venue":{"id":"4f08df964fc62d44946f058a","name":"ABC News \u2013 WMUR Debate","contact":{"twitter":"MittRomney"},"location":{"address":"100 St Anselm Drive","lat":42.98758759825106,"lng":-71.50742411613464,"city":"Manchester","state":"NH"},"categories":[{"id":"4bf58dd8d48988d1af941735","name":"College Auditorium","pluralName":"College Auditoriums","shortName":"Auditorium","icon":{"prefix":"https:\/\/foursquare.com\/img\/categories\/education\/default_","sizes":[32,44,64,88,256],"name":".png"},"primary":true}],"verified":false,"stats":{"checkinsCount":7,"usersCount":7,"tipCount":1}}};
...

К сожалению, команда Foursquare может изменить формат страницы или ограничить количество запросов с IP-адреса без каких-либо заметок.Вот почему это решение ужасноID.

...