PHP ile Twitter API kullanmak için en iyi yolu nedir?

6 Cevap php

Bir müşteri bana PHP inşa özel bir çözüm kullanarak, kendi web sitesi ana sayfasına kendi Twitter akışı eklemek istiyorum.

Twitter API açıkçası saatte bunu yapabilirsiniz aramaların sınırlı sayıda var, bu yüzden otomatik olarak ping Twitter yapamam birisi müvekkilimin Anasayfam yeniler her zaman.

Müşterinin web sitesi şu anda tamamen HTML ve böylece no database mevcut. Benim çözüm nedenle sadece PHP ve yerel dosya sistemi (örn. içinde bazı verilerle yerel bir XML dosya kaydetme) gerektirir gerekir.

Yani, bu sınırlı kriterleri verilen, bana Twitter API erişmek için en iyi yolu nedir - PHP ile - bir kaç dakika içinde benim API çağrısı sınırı vurmadan?

6 Cevap

Eğer bir zaman çizelgesi aşağı çekin ve daha sonra bazı dosya tabanlı önbelleğe eklemek için, bunu görüntüleyebilirsiniz kez oldukça kolay olacaktır.

check age of cache
Is it more than 5 mins old?
    fetch the latest information
    regenerate the HTML for output
    save the finished HTML to disk
display the cached pre-prepared HTML

PEAR's Cache_Lite Eğer önbelleğe alma katmandaki gereken her şeyi yapacağız.

array(
'lastrequest' => 123,
'tweets' => array ()
)

şimdi kod lastrequest için veri deposuna damgası X saniye yaşında daha olup olmadığını görmek için bir kontrol koymak. O zaman verilerinizi güncellemek için onun zamanı.

seri ve oldukça basit, bir dosyada dizisini saklamak

  1. Cron (likley değil - hatta bir veritabanı yok ise, o zaman hiçbir cron işleri vardır)
  2. bir dosyaya microtime() yazın. bir sayfa görünümünde kaydedilmiş birine geçerli damgası karşılaştırın. N dakikadan fazla onun farkı, yeni tweetfeed çekin ve dosyaya geçerli damgası yazmak
  3. ön sayfa herhangi bir php çağıran statik bir html dosyası ise, bir 1px şeffaf gif döndürür (Gençken en azından bunu bu şekilde yaptım) ve twitter çekme yapar bir görüntü <img src="scheduler.php"/> dahil sessizce

ya da "benim / müşterilerin bilgisayar, sunucu değil" yerel olarak, local-yerel dosya demek?

bu durumda:

  1. Bir cron veya zamanlayıcı ve PHP ile bazı sunucu olsun
  2. bir dosyaya yem okur ve kaydeder bir senaryo yazmak
  3. FTP kullanarak müşterilerine sunucuya dosya yazma
  4. (evet, ajax da DataSource'ları gibi statik dosyaları ile çalışır) javascript kullanarak beslemesi gösterecektir. jquery ya da bazı lib için bu büyük olduğu
  5. veya: lokal tweet gösterme html dosyası oluşturmak ve upload (ama dikkatli olun ... Eğer sunucudaki güncellemelere yazabilir çünkü)

imo: for small sites you often just don't need a fully grown sql database anyway. filesystems are great. a combination of scandir, preg_match and carefully chosen file names are often good enough.
and you can actually do a lot of front-end processing (like displaying XML) using beautiful javascript.

Biz sunucu geneli bilmiyorum çünkü ben size (Linux kutusu üzerinde varsayarak) bir cron işi kurmak öneririz. Eğer bir çok sorunu olmamalıdır daha paylaşılan bir barındırma ortamı cPanel gibi bir şey varsa. Sen cron tarafından çağrılan bir komut dosyası yazmak gerekiyor ve bu son tweets almak ve bir dosyaya (xml?) Bunları yazacaktır. Her 30 dakika için cron zamanlayabilirsiniz. veya her ne istiyorsun.

You may want to use TweetPHP by Tim Davies. http://lab.lostpixel.net/classes/twitter/ - This class has lots of features including the one you want, showing your clients time line. The page shows good examples on how to use it.

Daha sonra bir dosya veya veritabanında bu çıkışını koyabilirsiniz. Eğer site ziyaretçisi, bu yüzden bir zaman damgası tutan bir oturum değişkeni ayarlayabilirsiniz ve zaman damgası en az 5 dakika önce ise sadece başka bir güncelleştirme izin her 5 dakika gibi veritabanı veya dosyayı güncelleştirmek istiyorsanız.

Umarım bu yardımcı olur

Benim önerim: önbellek tarih ve tweets bir dizi tutmak için küçük basit bir nesne oluşturun. Birisi sayfasını ziyaret her zaman, aşağıdaki mantık gerçekleştirir:

A) dosyası var mı?

Yes: Read it into a variable No: Proceed to step D)

B) unserialize değişken (PHP çifti serialize () / unserialize ()) sadece iyi yapardı

C) Compare the age of the cache stored with the current time (a Unix timestamp would do it) Its over 5 minutes from each other:

D) Get the newest tweets from Twitter, update the object, serialize it and write in the cache again. Store the newest tweets for printing, too. Its not: Just read the tweets from the cache.

E) tweets yazdır

Nesneyi serialize için basit ve kolay yolu serialize () / unserialize () çifti. Eğer nesne yapmak için çaba koymak için istekli değilseniz, sadece () sadece iyi çalışır serialize, 2D dizi kullanabilirsiniz. http://php.net/serialize bir görünüm vermek

Eğer PEAR paketleri, cron veya başka basit çözümlere erişim olmayacaktır beri hiçbir cPanel erişimi, onun en iyi çözüm var düşünüyor.