• Bu site çerezler kullanır. Bu siteyi kullanmaya devam ederek çerez kullanımımızı kabul etmiş olursunuz. Daha fazla bilgi edin.

PHP Facebook Video Bilgilerini Alma

Konuyu Okuyan Kişiler (0)

inforesim

webmaster.tc
Katılım
4 Ağu 2012
Mesajlar
2,439
Beğeniler
0
#1

Günümüzde bir çok sitenin kullandığı (sömürdüğü) servislerin başında Facebook gelmektedir, Bir çok film, Video sitesinin videoları facebook da yüklüdür ve Kendi playerlarında oynatmaktadırlar (Film siteleri kullanmıyor, En son temizlikten sonra). Bu gün sizlere, Facebook dan bir videoyu kendi playerınızda kendinizinmiş gibi oynatmayı anlatacağım (MP4 adresini almayı).

İlk olarak, Kendimize bir video belirleyelim ve Bu video üzerinden işlemler yapalım.

Videomuz : Halkı ise Ona ATATÜRK dedi ! | Facebook

Gördüğünüz gibi video herkese açık, Herkese açık olmayan videoları oynatamazsınız (Uygulama ile İzinler alınması gerekiyor vs. ve Sadece kendi yüklediğiniz gizli videoları oynatabiliyorsunuz).

Dikkat ! Hangi yöntem ile Facebook Video Mp4 adresini alırsanız alın dinamik yapıdadır. Ondan dolayı, 20-30dk da bir video mp4 adresi değişecektir. Onun için, Veriyi dinamik bir PHP sayfasından çağırarak kullanın.

Yöntem 1
Şimdi ilk olarak, 1 yöntem olan embed kodunun içinden mp4 adresini almayı yapalım.

Belirli bir facebook adresimiz var ve Bu facebook adresine facebook video id göndereceğiz. ?v=x& buradaki x olarak belirtilmiş değer (v nin eşit olduğu değer) video id sidir.

PHP:
<?php
/*	Video Adresi : http://www.facebook.com/photo.php?v=188594114518192&set=vb.117056885011401&type=3&theater 
	Video idsi, ?v=x& x olan değerdir. Yani v nin eşit olduğu değerdir. Yapacağımız işlemlerde bize lazım olan video id değeridir.
*/
$videoid = "188594114518192";
/*	Yöntem 1 
	Bu yöntem ile Facebook embed sistemi içerisinden mp4 adresini alacağız.
*/
$kaynak = stripslashes(file_get_contents("http://www.facebook.com/ajax/flash/expand_inline.php?target_div=u879823_18&__a=1&v=$videoid"));
/*	File_get_contents ile Adres kaynağını alıp stripslashes den geçirip ters slashları sildiriyoruz */
preg_match_all('@"video_src","(.*?)"@',$kaynak,$m);
/*	preg_match_all ile video_src değeri olan mp4 adresini alıyoruz */


$json = '{"url": "'.$m[1][0].'"}'; 
/*	Json'da URL adında bir değer oluşturuyoruz (Bunun sebebi, Json u decode edip abuk subuk karakterlerden kurtulmak */
$json = json_decode($json); 
/*	Json decode ediyoruz */
$json= urldecode($json->{'url'}); 
/*	urldecode edip, Oluşturduğumuz url den mp4 adresini temiz şekilde alıyoruz */
echo $json; 
/*	Örnek Sonuç : http://video.ak.fbcdn.net/cfs-ak-snc6/v/80795/284/188594114518192_17065.mp4?oh=ebf7d9fe6cbe9053801bbaebf25a4eea&oe=50D8ABA7&__gda__=1356377119_8b4b02f742d8920778074294ab1d6a5b */
?>
Yukarıdaki kodda açıkça, Adımlar anlatılmıştır. O belirtilen kaynakdan video resmine kadar bir çok bilgiyi alabilirsiniz.

Yöntem 2
Bu yöntem ile Facebook un bize sunduğu imkan olan Graph api den faydalanacağız. Graph api ile acces_token bilgilerimizle video nun bilgilerinden tuttun, Video daki yorumlara kadar alabiliriz. Ama bunun için de uygulama gerekmektedir, Facebook size acces_token sunsa bile belirli süre sonra patlıyor. Anca bir uygulama yazıp, Uygulama üzerinden acces_token alıp kullanabilirsiniz.

İlk olarak, Graph API explorer - Facebook developers buradan "Erişim Anahtarı Al" butonuna tıklıyoruz ve 3 sütündeki tüm şıkları işaretliyoruz. Ardından "Get Access Token" diyoruz.



Erişim Anahtarı yazan yerden kodumuzu alıyoruz ve Aşağıdaki sisteme yerleştiriyoruz.

PHP:
<?php
/*	Video Adresi : http://www.facebook.com/photo.php?v=188594114518192&set=vb.117056885011401&type=3&theater 
	Video idsi, ?v=x& x olan değerdir. Yani v nin eşit olduğu değerdir. Yapacağımız işlemlerde bize lazım olan video id değeridir.
*/
$videoid = "188594114518192";
$token = "Erişim Anahtarı";
/*    Yöntem 2 
    Bu yöntem ile Facebook Graph Api ile mp4 adresini alacağız. 
*/ 

$kaynak = stripslashes(wmtc("https://graph.facebook.com/".$videoid."?access_token=".$token)); 
/*    File_get_contents ile Adres kaynağını alıp stripslashes den geçirip ters slashları sildiriyoruz */ 

preg_match_all('@"source":"(.*?)"@',$kaynak,$m2); 
/*    preg_match_all ile source değeri olan mp4 adresini alıyoruz */ 

$mp4 = $m2[1][0];
/*    urldecode edip, Oluşturduğumuz url den mp4 adresini temiz şekilde alıyoruz */ 

echo "<br/><strong>Yöntem 2 :</strong> ".$mp4;  
/*    Örnek Sonuç : http://video.ak.fbcdn.net/cfs-ak-snc6/v/80795/284/188594114518192_17065.mp4?oh=ff7778fd0875addf758bc2d56ee68eb1&oe=50DAB8A7&__gda__=1356564319_b38bfa96d4b506c1ff03ddd2779a4139 */ 
?>
Bildiğim 1 yöntem daha vardı, xml den veri alıyorduk ama hatırlayamadım. Onu daha hatırlayınca eklerim ama benim size önerdiğim 1. kullanmanız.

2 Yöntemin de Sonuçları ;



Dikkat ! 2 Yönteminde denenmiş halini ek den indirebilirsiniz.

İyi Kullanımlar...
 

Ekli dosyalar

EuroTurk

webmaster.tc
Katılım
19 Eki 2012
Mesajlar
22
Beğeniler
0
#5

Günümüzde bir çok sitenin kullandığı (sömürdüğü) servislerin başında Facebook gelmektedir, Bir çok film, Video sitesinin videoları facebook da yüklüdür ve Kendi playerlarında oynatmaktadırlar (Film siteleri kullanmıyor, En son temizlikten sonra). Bu gün sizlere, Facebook dan bir videoyu kendi playerınızda kendinizinmiş gibi oynatmayı anlatacağım (MP4 adresini almayı).

İlk olarak, Kendimize bir video belirleyelim ve Bu video üzerinden işlemler yapalım.

Videomuz : Halkı ise Ona ATATÜRK dedi ! | Facebook

Gördüğünüz gibi video herkese açık, Herkese açık olmayan videoları oynatamazsınız (Uygulama ile İzinler alınması gerekiyor vs. ve Sadece kendi yüklediğiniz gizli videoları oynatabiliyorsunuz).

Dikkat ! Hangi yöntem ile Facebook Video Mp4 adresini alırsanız alın dinamik yapıdadır. Ondan dolayı, 20-30dk da bir video mp4 adresi değişecektir. Onun için, Veriyi dinamik bir PHP sayfasından çağırarak kullanın.

Yöntem 1
Şimdi ilk olarak, 1 yöntem olan embed kodunun içinden mp4 adresini almayı yapalım.

Belirli bir facebook adresimiz var ve Bu facebook adresine facebook video id göndereceğiz. ?v=x& buradaki x olarak belirtilmiş değer (v nin eşit olduğu değer) video id sidir.

PHP:
<?php
/*	Video Adresi : http://www.facebook.com/photo.php?v=188594114518192&set=vb.117056885011401&type=3&theater 
	Video idsi, ?v=x& x olan değerdir. Yani v nin eşit olduğu değerdir. Yapacağımız işlemlerde bize lazım olan video id değeridir.
*/
$videoid = "188594114518192";
/*	Yöntem 1 
	Bu yöntem ile Facebook embed sistemi içerisinden mp4 adresini alacağız.
*/
$kaynak = stripslashes(file_get_contents("http://www.facebook.com/ajax/flash/expand_inline.php?target_div=u879823_18&__a=1&v=$videoid"));
/*	File_get_contents ile Adres kaynağını alıp stripslashes den geçirip ters slashları sildiriyoruz */
preg_match_all('@"video_src","(.*?)"@',$kaynak,$m);
/*	preg_match_all ile video_src değeri olan mp4 adresini alıyoruz */


$json = '{"url": "'.$m[1][0].'"}'; 
/*	Json'da URL adında bir değer oluşturuyoruz (Bunun sebebi, Json u decode edip abuk subuk karakterlerden kurtulmak */
$json = json_decode($json); 
/*	Json decode ediyoruz */
$json= urldecode($json->{'url'}); 
/*	urldecode edip, Oluşturduğumuz url den mp4 adresini temiz şekilde alıyoruz */
echo $json; 
/*	Örnek Sonuç : http://video.ak.fbcdn.net/cfs-ak-snc6/v/80795/284/188594114518192_17065.mp4?oh=ebf7d9fe6cbe9053801bbaebf25a4eea&oe=50D8ABA7&__gda__=1356377119_8b4b02f742d8920778074294ab1d6a5b */
?>
Yukarıdaki kodda açıkça, Adımlar anlatılmıştır. O belirtilen kaynakdan video resmine kadar bir çok bilgiyi alabilirsiniz.

Yöntem 2
Bu yöntem ile Facebook un bize sunduğu imkan olan Graph api den faydalanacağız. Graph api ile acces_token bilgilerimizle video nun bilgilerinden tuttun, Video daki yorumlara kadar alabiliriz. Ama bunun için de uygulama gerekmektedir, Facebook size acces_token sunsa bile belirli süre sonra patlıyor. Anca bir uygulama yazıp, Uygulama üzerinden acces_token alıp kullanabilirsiniz.

İlk olarak, Graph API explorer - Facebook developers buradan "Erişim Anahtarı Al" butonuna tıklıyoruz ve 3 sütündeki tüm şıkları işaretliyoruz. Ardından "Get Access Token" diyoruz.



Erişim Anahtarı yazan yerden kodumuzu alıyoruz ve Aşağıdaki sisteme yerleştiriyoruz.

PHP:
<?php
/*	Video Adresi : http://www.facebook.com/photo.php?v=188594114518192&set=vb.117056885011401&type=3&theater 
	Video idsi, ?v=x& x olan değerdir. Yani v nin eşit olduğu değerdir. Yapacağımız işlemlerde bize lazım olan video id değeridir.
*/
$videoid = "188594114518192";
$token = "Erişim Anahtarı";
/*    Yöntem 2 
    Bu yöntem ile Facebook Graph Api ile mp4 adresini alacağız. 
*/ 

$kaynak = stripslashes(wmtc("https://graph.facebook.com/".$videoid."?access_token=".$token)); 
/*    File_get_contents ile Adres kaynağını alıp stripslashes den geçirip ters slashları sildiriyoruz */ 

preg_match_all('@"source":"(.*?)"@',$kaynak,$m2); 
/*    preg_match_all ile source değeri olan mp4 adresini alıyoruz */ 

$mp4 = $m2[1][0];
/*    urldecode edip, Oluşturduğumuz url den mp4 adresini temiz şekilde alıyoruz */ 

echo "<br/><strong>Yöntem 2 :</strong> ".$mp4;  
/*    Örnek Sonuç : http://video.ak.fbcdn.net/cfs-ak-snc6/v/80795/284/188594114518192_17065.mp4?oh=ff7778fd0875addf758bc2d56ee68eb1&oe=50DAB8A7&__gda__=1356564319_b38bfa96d4b506c1ff03ddd2779a4139 */ 
?>
Bildiğim 1 yöntem daha vardı, xml den veri alıyorduk ama hatırlayamadım. Onu daha hatırlayınca eklerim ama benim size önerdiğim 1. kullanmanız.

2 Yöntemin de Sonuçları ;



Dikkat ! 2 Yönteminde denenmiş halini ek den indirebilirsiniz.

İyi Kullanımlar...
Notice: Undefined offset: 0 in C:\xampp\htdocs\facebook.php on line 37
Yöntem 1 :
Notice: Undefined index: HTTP_USERAGENT in C:\xampp\htdocs\facebook.php on line 13

Notice: Undefined offset: 0 in C:\xampp\htdocs\facebook.php on line 57
 

yasarguner

webmaster.tc
Katılım
21 Mar 2013
Mesajlar
62
Beğeniler
0
#6
teşekkürler hocam alın size geliştirilmeye hazır proje için başlangıç :)
 

Hucukii

webmaster.tc
Katılım
4 Eyl 2013
Mesajlar
17
Beğeniler
0
#7
Peki hocam , youtube apı ile bir kanaldaki videoları sırayla sitemizin videolar alanına çekmek içinde bir konu yazabilirmisiniz bunu çok araştırdım fakat bulamadım :)
 

inforesim

webmaster.tc
Katılım
4 Ağu 2012
Mesajlar
2,439
Beğeniler
0
#8
Peki hocam , youtube apı ile bir kanaldaki videoları sırayla sitemizin videolar alanına çekmek içinde bir konu yazabilirmisiniz bunu çok araştırdım fakat bulamadım :)
Şuan zamanım yok maalesef.
Notice: Undefined offset: 0 in C:\xampp\htdocs\facebook.php on line 37
Yöntem 1 :
Notice: Undefined index: HTTP_USERAGENT in C:\xampp\htdocs\facebook.php on line 13

Notice: Undefined offset: 0 in C:\xampp\htdocs\facebook.php on line 57
appserv kullanın.