-
Notifications
You must be signed in to change notification settings - Fork 1
Analiza źródła
- Czy da się ograniczyć w searchu tylko do tweetów z geolokalizacją?
Nie dla REST API, tak dla Streaming API
- Jak zawęzić wyszukiwanie tweetów do określonego obszaru?
W Streaming API poprzez współrzędne prostokątnego obszaru
-
Geolokalizacja jest domyślnie wyłączona w kliencie webowym oraz androidowym
-
Maksymalna treść zapytania search/tweets to 1000 znaków
A UTF-8, URL-encoded search query of 1,000 characters maximum, including operators. Queries may additionally be limited by complexity.
https://dev.twitter.com/docs/api/1.1/get/search/tweets
- Dokumentacja
- Wpisy tylko z ostatnich 6-9 dni
The Search API is not complete index of all Tweets, but instead an index of recent Tweets. At the moment that index includes between 6-9 days of Tweets.
- Nie można filtrować po geolokalizacji
There's no filter you can apply to the Search API that will limit only to explicitly geotagged tweets
https://dev.twitter.com/discussions/21789
- możliwość filtrowania - lokalizacja, język, słowa kluczowe
- różne rodzaje wyciąganych danych - wpisy, lista miejsc, znajomi, followersi, ulubione wpisy, trendy, sugerowani użytkownicy
- limit: 180 zapytań w 15 minutowym oknie, więcej - w jednym zapytaniu maks. 100 wpisów więcej
-
The default access level allows up to 400 track keywords, 5,000 follow userids and 25 0.1-360 degree location boxes
https://dev.twitter.com/docs/api/1.1/post/statuses/filter- uwaga track keywords są traktowane w specyficzny sposób tj. dla listy słów:
new String[] { "mesut ozil", "arsenal", "londyn"}
znalezione zostaną wpisy: kocham arsenal londyn
, tylko arsenal
, nowa praca, nowe możliwości, nowe miasto #londyn
, świetny jest ten niemiecki mesut ozil
, ciekawe jak ozil czuje się po zmianie klubu #arsenal
ale odrzucone zostanie np: no nareszcie! ozil rusza na pomoc!
-
stanie się tak dlatego, gdyż zapytanie, które powstanie dla tych słów będzie postaci:
"mesut ozil,arsenal,londyn"
- a mechanizm twittera traktuje spację jako operatorAND
, zaś przecinek jakoOR
-
Działa tylko dla wpisów "na żywo"
-
Można filtrować geolokalizację
- Na podstawie dokładnych danych z telefonu (sieć komórkowa / GPS)
- Lub na danych przybliżonych (pisząc bezpośrednio z komputera)
- Uwaga: lokalizacja może być ustawiona ręcznie przez użytkownika
-
Filtrowanie po lokalizacjach (https://dev.twitter.com/docs/streaming-apis/parameters#locations)
- Zapytanie REST: https://api.twitter.com/1.1/statuses/user_timeline.json?count=1&screen_name=BorekMati
- Można odpalić w: https://dev.twitter.com/console
HTTP/1.1 200 OK
content-type:application/json;charset=utf-8
x-frame-options:SAMEORIGIN
x-rate-limit-remaining:174
last-modified:Wed, 16 Oct 2013 07:10:28 GMT
status:200 OK
date:Wed, 16 Oct 2013 07:10:28 GMT
x-transaction:a9a987d7a6956262
pragma:no-cache
cache-control:no-cache, no-store, must-revalidate, pre-check=0, post-check=0
x-xss-protection:1; mode=block
x-rate-limit-limit:180
expires:Tue, 31 Mar 1981 05:00:00 GMT
set-cookie:guest_id=v1%3A138190742874790579; Domain=.twitter.com; Path=/; Expires=Fri, 16-Oct-2015 07:10:28 UTC
content-length:6957
x-rate-limit-reset:1381908037
server:tfe
strict-transport-security:max-age=631138519
x-access-level:read-write-directmessages
[
{
"created_at": "Tue Oct 15 16:04:42 +0000 2013",
"id": 390146222759378940,
"id_str": "390146222759378945",
"text": "@BolekLegia @K_Stanowski Zobacz wyniki z Serbia, Finlandia plus fart w Lizbonie. Krzynowek- plecy Ricardo - remis. I dno w elim. do MS w RPA",
"source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
"truncated": false,
"in_reply_to_status_id": 390145461308231700,
"in_reply_to_status_id_str": "390145461308231680",
"in_reply_to_user_id": 1488312289,
"in_reply_to_user_id_str": "1488312289",
"in_reply_to_screen_name": "BolekLegia",
"user": {
"id": 1136771436,
"id_str": "1136771436",
"name": "Mateusz Borek",
"screen_name": "BorekMati",
"location": "",
"description": "Komentator/moderator Polsatu od 2000 r. Wcześniej Canal+ i Eurosport.",
"url": null,
"entities": {
"description": {
"urls": []
}
},
"protected": false,
"followers_count": 30414,
"friends_count": 272,
"listed_count": 152,
"created_at": "Thu Jan 31 11:52:33 +0000 2013",
"favourites_count": 37,
"utc_offset": null,
"time_zone": null,
"geo_enabled": false,
"verified": false,
"statuses_count": 3911,
"lang": "pl",
"contributors_enabled": false,
"is_translator": false,
"profile_background_color": "C0DEED",
"profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
"profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
"profile_background_tile": false,
"profile_image_url": "http://a0.twimg.com/profile_images/3187760032/0d15136885c94c367dcc78d9e473682e_normal.jpeg",
"profile_image_url_https": "https://si0.twimg.com/profile_images/3187760032/0d15136885c94c367dcc78d9e473682e_normal.jpeg",
"profile_link_color": "0084B4",
"profile_sidebar_border_color": "C0DEED",
"profile_sidebar_fill_color": "DDEEF6",
"profile_text_color": "333333",
"profile_use_background_image": true,
"default_profile": true,
"default_profile_image": false,
"following": null,
"follow_request_sent": false,
"notifications": null
},
"geo": null,
"coordinates": null,
"place": null,
"contributors": null,
"retweet_count": 0,
"favorite_count": 0,
"entities": {
"hashtags": [],
"symbols": [],
"urls": [],
"user_mentions": [
{
"screen_name": "BolekLegia",
"name": "Andrzej K.",
"id": 1488312289,
"id_str": "1488312289",
"indices": [
0,
11
]
},
{
"screen_name": "K_Stanowski",
"name": "Krzysztof Stanowski",
"id": 1183133300,
"id_str": "1183133300",
"indices": [
12,
24
]
}
]
},
"favorited": false,
"retweeted": false,
"lang": "pl"
}
]
- Geo and Coordinates are the same fields, but Geo is deprecated! Both of them contains latitude and longitude, but in reversed orded
- Coordinates
- The Tweet was created with a latitude and longitude being passed to it. The lat/long is for a place not yet know to our database
- Coordinates and Place
- The Tweet was created with a latitude and longitude being passed to it. The lat/long is known to our database and the neighborhood it corresponds to was set as the place.
- Place
- The Tweet was created with a place_id being passed to it, but no lat/long.