Twitter Yeni Api
-
Twitter api v1.1 e geçmesiyle tüm uygulama ve siteler gümledi, yeni apiyle güncelleme yapacağım fakat hepsinde api hata veriyor, bilgisi olan var mı ?
Yeni Api Kullanıcı Bilgileri Alma : https://dev.twitter.com/docs/api/1.1/get/users/show
Json formatta hata veriyor {"errors":[{"message":"Bad Authentication data","code":215}]}
Json Format : https://api.twitter.com/1.1/users/show.json?screen_name=rsarver
-
1.1 ile apide önce authentication sağlamak gerekiyor. application yaratıp onun üzerinden calısıcaksın.şurda bir örneği var sannırım.
http://www.paulund.co.uk/using-the-new-twitter-api-v1-1
-
aouth ile yapman lazım.
allahtan önce halletim işimi :) şimdi rahatım.
hangi programlama dili?
ve hangi apiyi kullanıyorsun search apiyimi ?
-
https://api.twitter.com/1/statuses/user_timeline/user.json
Php de kullanıcı bilgisi çekmek için kullanıyordum.
-
Dostlar şu twitter api olayının türkçe kaynağı vs yokmudur takip uygulamalarından yapacağımda api ile ilgili hiç bir bilgim yok
-
csharpta twitter search api 1.1 için entegrasyonum tamam ama php ile ilgili hiç bir bilgim yok.
2 ay öncesinden uyarmaya başladı twitter keşke son ana bırakmasaydınız ?
gelen jsonlarda yakında bu apinin kullanımı bitecek yeni api için geçiş sürecini başlatın yazıyordu.
tam 24 saat sürdü pc başından kalkmadan işi bitirmem :)
csharpta lazım olan varsa veririm :)
-
manglerman bunu yazdı
csharpta twitter search api 1.1 için entegrasyonum tamam ama php ile ilgili hiç bir bilgim yok.
2 ay öncesinden uyarmaya başladı twitter keşke son ana bırakmasaydınız ?
gelen jsonlarda yakında bu apinin kullanımı bitecek yeni api için geçiş sürecini başlatın yazıyordu.
tam 24 saat sürdü pc başından kalkmadan işi bitirmem :)
csharpta lazım olan varsa veririm :)
hocam ne iş görüyordu senin api? login işlemi yapmak istiyorum bende twitter ile. valla paylaş geliştirmeye çalışalım hep beraber:)
-
bende rss ile twettleri yazdırıyordum o da gitmiş neyse araştıralım bakalım
-
istediğin keywordu twitter içinde arıyor.
string Keywords="manglerman"; SearchTwitter(Keywords, out http_reply);
buda oauth yapan void
bool SearchTwitter(string keyword, out string result) { try { // oauth application keys var consumerKey = ""; var consumerSecret = ""; var accessToken = ""; var accessTokenSecret = ""; var Count = "100";//her sayfada kaç kayıt getircen ? maksimum 100 // oauth implementation details var oauthSignatureMethod = "HMAC-SHA1"; var oauthVersion = "1.0"; var resource_url = "https://api.twitter.com/1.1/search/tweets.json";//burası search apinin urlsi var q = keyword; var oauth_nonce = Convert.ToBase64String( new ASCIIEncoding().GetBytes(DateTime.Now.Ticks.ToString())); var timeSpan = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc); var oauth_timestamp = Convert.ToInt64(timeSpan.TotalSeconds).ToString(); var baseFormat = "count={7}&oauth_consumer_key={0}&oauth_nonce={1}&oauth_signature_method={2}" + "&oauth_timestamp={3}&oauth_token={4}&oauth_version={5}&q={6}&result_type=recent"; var baseString = string.Format(baseFormat, consumerKey, oauth_nonce, oauthSignatureMethod, oauth_timestamp, accessToken, oauthVersion, Uri.EscapeDataString(q), Uri.EscapeDataString(Count) ); baseString = string.Concat("GET&", Uri.EscapeDataString(resource_url), "&", Uri.EscapeDataString(baseString)); var compositeKey = string.Concat(Uri.EscapeDataString(consumerSecret), "&", Uri.EscapeDataString(accessTokenSecret)); string oauth_signature; using (HMACSHA1 hasher = new HMACSHA1(ASCIIEncoding.ASCII.GetBytes(compositeKey))) { oauth_signature = Convert.ToBase64String( hasher.ComputeHash(ASCIIEncoding.ASCII.GetBytes(baseString))); } // create the request header var headerFormat = "OAuth oauth_nonce=\"{0}\", oauth_signature_method=\"{1}\", " + "oauth_timestamp=\"{2}\", oauth_consumer_key=\"{3}\", " + "oauth_token=\"{4}\", oauth_signature=\"{5}\", " + "oauth_version=\"{6}\""; var authHeader = string.Format(headerFormat, Uri.EscapeDataString(oauth_nonce), Uri.EscapeDataString(oauthSignatureMethod), Uri.EscapeDataString(oauth_timestamp), Uri.EscapeDataString(consumerKey), Uri.EscapeDataString(accessToken), Uri.EscapeDataString(oauth_signature), Uri.EscapeDataString(oauthVersion) ); ServicePointManager.Expect100Continue = false; var postBody = string.Format("q={0}&count={1}&result_type=recent", Uri.EscapeDataString(q), Uri.EscapeDataString(Count)); resource_url += "?" + postBody; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(resource_url); request.Headers.Add("Authorization", authHeader); request.Method = "GET"; request.ContentType = "application/x-www-form-urlencoded"; System.Threading.Thread.Sleep(10000); if (General.Logging.DbLogIsActive() == "1")//db log aktifmi General.Logging.DoDbLog(resource_url, "2", "", "", "", ""); return General.RequestTool.RequestWebPageForTwitter(request, out result); } catch (Exception ex) { RtYaz(ex.Message + ex.InnerException, "1"); result = ""; return false; } }
ben foreach içinde bir sürü kelime arattığım için her requestten sonra 10 saniye bekletiyorum.
limitlerle ilgili bilgi edinmek için
https://dev.twitter.com/docs/rate-limiting/1.1/limits
benim kullandığım search api nin dökümantasyonu şurda :
https://dev.twitter.com/docs/api/1.1/get/search/tweets
consumer_key filan nedir diye sorarsanız twitterda bi applicaiton oluşturmanız lazım.
https://dev.twitter.com/ adresine giriş yaptıktan sonra sağ üst köşeden resminize tıklayıp add application demeniz lazım.
oauth etkinleştirip access token oluşturduktan sonra ikinci sekmeden " Read, Write and Access direct messages " yi işaretleyip gerekli keyleri alıp verdiğim koda eklediğiniz zaman işlem tamamdır.
ondan sonrasını istediğiniz json pars etme yöntemiyle yaparsınız :)
-
@manglerman sağol hocam haftasonu uğraşıcam bi durum olursa pm kutunu doldururum:)
-
Şu anda OAuth ile kullanıcı bilgisi alabiliyorum fakat bunu ayırıp bilgileri ayrı ayrı çektiremiyorum, daha önce twitter apinin kendi sitesinden json ile verilen bilgiyi alabiliyordum ayrı ayrı değişkene atayabiliyordum fakat şimdi olmuyor, daha doğrusu json formatı şuan kendi sayfamda çalışıyor, kod ve çıktısı şu şekilde.
Kullandığım kod :
<?php require_once('twitteroauth.php'); $app = array( 'CONSUMER_KEY' => ( isset($_GET['consumer_key']) && !empty($_GET['consumer_key']) ) ? $_GET['consumer_key'] :'123456654321', 'CONSUMER_SECRET' => ( isset($_GET['consumer_secret']) && !empty($_GET['consumer_secret']) ) ? $_GET['consumer_secret'] :'a51f8mkjemkagljjmgka3845mka', 'OAUTH_TOKEN' => ( isset($_GET['oauth_token']) && !empty($_GET['oauth_token']) ) ? $_GET['oauth_token'] :'592560555-C603yfPfXRyvIuieaxXyV7mm3rLc69786qSyH8Y3', 'OAUTH_TOKEN_SECRET' => ( isset($_GET['oauth_token_secret']) && !empty($_GET['oauth_token_secret']) ) ? $_GET['oauth_token_secret'] :'w8AMgUocznKD0DmsVn4SLO530FzZZ5lYZ88zcc6BE' ); $parameters = array( 'screen_name' => ( isset($_GET['screen_name']) && !empty($_GET['screen_name']) ) ? $_GET['screen_name'] : 'tahribatcom', 'count' => ( isset($_GET['count']) && !empty($_GET['count']) ) ? $_GET['count'] : 'TİMELİNE COUNT', 'page' => ( isset($_GET['page']) && !empty($_GET['page']) ) ? $_GET['page'] : '5', 'callback' => '?' ); $connection = new TwitterOAuth($app['CONSUMER_KEY'], $app['CONSUMER_SECRET'], $app['OAUTH_TOKEN'], $app['OAUTH_TOKEN_SECRET']); $content = $connection->get("users/show", $parameters); $tweet=json_encode($content); echo $tweet; ?>
Çıktı Ekranı ise şu şekilde geliyor, yani json formatı :