2011-08-09 40 views
12

Tôi cố gắng để nhúng Facebook video sử dụng mã bên dưới:Làm thế nào để có được hình thu nhỏ video Facebook từ id video của nó?

<object width="400" height="224" > 
<param name="allowfullscreen" value="true" /> 
<param name="allowscriptaccess" value="always" /> 
<param name="movie" value="http://www.facebook.com/v/115316011865684" /> 
<embed src="http://www.facebook.com/v/115316011865684" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="400" height="224"> 
</embed> 
</object> 

Nó làm việc tốt, nhưng là có cách nào tương tự để hiển thị hình thu nhỏ video từ id video?
Ví dụ: http://www.facebook.com/thumbnail/115316011865684 hoặc cái gì khác?

Trả lời

22

Bạn có thể lấy hình thu nhỏ từ id video bằng cách truy cập URL API đồ thị này - https://graph.facebook.com/VIDEO_ID/picture, ví dụ: https://graph.facebook.com/115316011865684/picture

+1

cảm ơn, nó đã giúp tôi:) ... tôi có thể lấy tiêu đề video theo cách này không? –

+1

Để lấy tiêu đề video, thực hiện cuộc gọi đến https://graph.facebook.com/VIDEO_ID và tìm trường "tên" được trả về. Trường "hình ảnh" cũng sẽ được trả lại bằng cuộc gọi này và tương ứng với hình thu nhỏ. Để biết thêm chi tiết, hãy xem https://developers.facebook.com/docs/reference/api/video/ –

+0

đó là hình ảnh khá nhỏ, tôi có thể nhận được hình thu nhỏ lớn hơn như youtube không? – TomSawyer

6

https://graph.facebook.com/VIDEO_ID sẽ cung cấp cho bạn nhiều thông tin hơn, bao gồm hình thu nhỏ lớn hơn để chọn. (Bạn có thể nhận được một danh sách các thông tin có sẵn tại https://developers.facebook.com/docs/graph-api/reference/video.)

Dưới đây là một số mã PHP để khai thác các thumbnail lớn nhất:

$data = file_get_contents("https://graph.facebook.com/$video_id?fields=format"); 
if ($data !== FALSE) 
{ 
$result=json_decode($data); 
$count=count($result->format)-1; 
$thumbnail=$result->format[$count]->picture; 
} 

Cập nhật: Đoạn mã trên đã được cập nhật từ Facebook đã thay đổi API của họ vào ngày 10 tháng 7 năm 2017. Dưới đây là một số mã PHP bổ sung để có hình thu nhỏ lớn cho video trong trường hợp Facebook thay đổi lại mọi thứ:

$data = file_get_contents("https://graph.facebook.com/$video_id/thumbnails?access_token=$facebook_access_token"); 
if ($data !== FALSE) 
{ 
$result=json_decode($data); 
$thumbnail=$result->data[0]->uri; 
} 

Giải pháp thứ hai này yêu cầu s mã thông báo truy cập Facebook. Dưới đây là một số hướng dẫn về cách để có được một access token Facebook: https://smashballoon.com/custom-facebook-feed/access-token/

+2

Dường như điều này chỉ hoạt động đối với các trang chứ không phải cho người dùng. Nó hoạt động tốt cho các trang mặc dù. Đối với người dùng, họ phải xác thực và cho phép từ những gì tôi có thể nói. – Jake

+0

@jake Tôi nghĩ rằng có thể tải video do người dùng tải lên. Tôi có thể thấy rất nhiều phần mềm download video trực tuyến trên facebook có thể làm được điều này. Tôi tò mò muốn biết họ quản lý như thế nào. – basagabi

+0

Vào tháng 2 năm 2016, khi tôi xem xét điều này, không có cách nào để thực hiện việc này với video của Người dùng, nhưng bạn có thể làm điều đó bằng video của Trang. Tôi không chắc chắn những gì bạn đang nhìn thấy, nhưng đây không phải là về xem video trên Facebook. Nếu bạn thấy hình thu nhỏ từ Facebook, hiển thị trên một trang web khác, chúng là từ trang Facebook (không phải người dùng) hoặc họ được người dùng cấp phép bằng API. Đó là vấn đề lớn, người dùng bị khóa, bạn phải xin phép họ thông qua API để sử dụng nội dung của họ. – Jake

1

Tôi chỉ có được nó:

https://graph.facebook.com/VIDEO_ID?fields=format,source 

Điều này sẽ giúp bạn có một loạt các định dạng có sẵn với URL thumbnail và HTML cho cách nhúng. Ngoài ra nguồn thuộc tính nhận url .mp4 của video.

Hãy thử: https://graph.facebook.com/1706818892661729?fields=format,source

0

tôi tạo ra một hàm php để trả lời câu hỏi của bạn mà không cần phải đi qua đọc tài liệu nhàm chán về facebook đồ thị. Tất cả những gì bạn cần chỉ là chèn liên kết video, facebook và youtube, nhưng bạn có thể sửa đổi để thêm các nguồn khác. chỉ cần sao chép liên kết video youtube trong thanh địa chỉ và cho facebook, nhấp chuột phải vào video và nhấp vào hiển thị url video, sau đó sao chép.

//get video thumbnail for facebook and youtube 
function get_vid_thumbnail($link){ 
    $thumbnail=''; 
//check if video link is facebook 
    if (strpos($link, 'facebook') !== false) { 
     $thumbnail=fb_thumb($link); 
     //$thumbnail='fb'; 
    } 
//check if video link is youtube 
    if (strpos($link, 'youtube.com') !== false) { 
     $thumbnail=youtube_thumb($link); 
     //$thumbnail='youtube'; 
    } 
    return $thumbnail; 
} 


//supporting functions 
//get youtube thumbnail 
function youtube_thumb($link){ 
    $new=str_replace('https://www.youtube.com/watch?v=','', $link); 
    $vv='https://img.youtube.com/vi/'.$new.'/0.jpg'; 
    return $vv; 
} 

//clean the facebook link 
function fb_video_id($url) { 
    //split the url 
    $main=parse_url($url); 
    //get the pathe and split to get the video id 
    $main=$main['path']; 
    $main=explode('/',$main); 
    $main=$main[3]; 
    return $main; 
} 
//get the thumbnail 
function fb_thumb($link) { 
    $img = 'https://graph.facebook.com/'.fb_video_id($link).'/picture'; 
    return $img; 
} 

//get video thumbnail for fb and youtube ends 

//get embed url for facebook and youtube to be used as video source 
function get_vid_embed_url($link){ 
    $embed_url='sss'; 
//check if video link is facebook 
    if (strpos($link, 'facebook') !== false) { 
     # code... 
     $embed_url=fb_embed_link($link); 
     //$thumbnail='fb'; 
    } 
//check if video link is youtube 
    if (strpos($link, 'youtube.com') !== false) { 
     # code... 
     $embed_url=youtube_embed_link($link); 
     //$thumbnail='youtube'; 
    } 
    return $embed_url; 
} 
//get youtube embed link 
function youtube_embed_link($link){ 
    $new=str_replace('https://www.youtube.com/watch?v=','', $link); 
    $link='https://www.youtube.com/embed/'.$new; 
    return $link; 
} 
//get facebook embed link 
function fb_embed_link($link) { 
    $link = 'https://www.facebook.com/plugins/video.php?href='.$link.'&show_text=0&width=560'; 
    return $link; 
} 
Các vấn đề liên quan