Facebook Çevrimdışı Erişim anahtarı ve giriş

3 Cevap php

Ben bir süre için şimdi bu üzerinde çalışıyoruz ve ben işe almak gibi olamaz. Bu sık sorulan gibi görünüyor, ama nadiren iyi cevap bir soru.

I want my website's users to link their facebook account with my website. So they can see their stream e.t.c on my site.

At the moment, each time they log into my site they have to connect with facebook again. I want to have the option for users to give me offline_access to their data, so they don't have to re-login to facebook/re-connect with my site each time they come to my site. As its kind of the point of my site in general.

Bunu yapmak için ben çevrimdışı erişim almak gerekir anlıyorum. (Https://developers.facebook.com/docs/authentication/) rağmen benim bu belgeler üzerinde biraz hafif gibi görünüyor arıyor (Facebook offline access step-by-step).

Ben zaten ondan veri almak için nasıl sadece emin değilim çevrimdışı erişim için sormak için biliyorum.

Aşağıdaki gibi Yani benim sorular şunlardır;

  1. Ben bunu talep sonra nasıl yeni infinate Oturum anahtarı alabilirim?
  2. Ben o var ve veritabanında depolamak kez - Nasıl yerine sadece normal bir sınırlı erişim tuşu geçiyor onunla bir facebook kullanıcı oluşturmak mı?

Sadece daha fazla bilgi için. Eğer düzenli php kütüphanesini kullanarak bana kodu verebilir eğer ben sadece dönüştürmek gerekir rağmen Eliot Haughin en Facebook connect library ile (codeigniter) PHP kullanıyorum

Çok teşekkürler

3 Cevap

Sağ. Biraz daha arama ve kod etrafında alay sonra. Ben bunu anladım.

Ben birden fazla kullanıcı için ve bir hafta boyunca bunu test ettik ve bir cazibe gibi çalışır.

Eğer offline_access izni aldık zaman, oturum anahtarını ve kullanıcı kimliğini saklamak. (Istediğiniz yere. Benim veritabanında benim saklamak).

The infinite session key will look something like this df4175330aaddb9d50fd8f84-30000799 with everything after the 'dash' being the users ID.

Sonra API çağrısı dahaki sefere in bu kod satırı eklemek

$this->fb->set_user('Facebook User ID', 'Offline Access Session key', 0); N.B. the zero is the amount of time before it will expire. 0 = never.

Aşağıdaki gibi benim kütüphanede Benim kodudur

$this->fb = new Facebook($this->_api_key, $this->_secret_key);     
//Query Database to see if user had enabled offline access.
//If So extract the userid and session key
$this->fb->set_user($fbuserid, $fbsess, 0);

In my testing this has worked perfectly. Now my users can log into my site and have facebook automatically, once they give the offline_access permission. Its currently been working for a week without problems.

Ben her şeyi thats düşünüyorum. Ama ben bir şey eğer sol dışarı bana bildirin.

Ben onlar F8 bunu ilan beri bağlamak ve bir yıl önce beta koymak facebook ile çalışıyoruz, ben arka uç tarafında ben sorumluyum bizim Facebook birçok büyük web siteleri üzerinde entegrasyon bağlamak, ve ben biraz geçirdim özellikle bu konuda zaman.

İşte a good post on the topic, ande burada a bug filed 3 months ago.

Uzun lafın kısası, facebook aktif oturum promosyon bu tür destekleyen değil - evet, bu in the docs - ama çalışmıyor. Açıkça aslında içten test ediyoruz bir şey değil.

Ve deneyimlerinden, sana söyleyeyim: Bu bir iyi belgelenmiş, yaygın olarak kullanılan bir özellik değilse, bunu korumak için facebook güvenemez.

Anahtar, kullanıcının parolasını değiştirir her zaman sona eriyor. Bu belgelere yazılır.