2010-04-27 43 views
43

Tôi đang cố gắng làm quen với API đồ thị mới của Facebook và cho đến nay tôi có thể tìm nạp và viết một số dữ liệu khá dễ dàng.Tải ảnh lên album bằng API đồ thị Facebook

Tôi đang cố gắng tìm tài liệu phong nha để tải hình ảnh lên album.

Theo http://developers.facebook.com/docs/api#publishing bạn cần cung cấp đối số thông báo. Nhưng tôi không hoàn toàn chắc chắn làm thế nào để xây dựng nó.

Cũ hơn nguồn tài nguyên Tôi đã đọc là:

Nếu ai đó có thêm thông tin hoặc có thể giúp tôi giải quyết vấn đề hình ảnh tải lên một album qua tài khoản Facebook API đồ thị vui lòng trả lời!

Trả lời

48

Dưới đây là một số cách khác nhau để tải ảnh lên bằng API PHP Facebook Graph. Các ví dụ giả sử bạn đã khởi tạo đối tượng $ facebook và có một phiên hợp lệ.

1 - Tải lên để mặc định ứng dụng Album của Current User

Ví dụ này sẽ đưa ảnh lên album ứng dụng mặc định của bạn của người sử dụng hiện nay. Nếu album chưa tồn tại, album sẽ được tạo.

$facebook->setFileUploadSupport(true); 
$args = array('message' => 'Photo Caption'); 
$args['image'] = '@' . realpath($FILE_PATH); 

$data = $facebook->api('/me/photos', 'post', $args); 
print_r($data); 

2 - Tải lên Target Album

Ví dụ này sẽ upload ảnh lên một album cụ thể.

$facebook->setFileUploadSupport(true); 
$args = array('message' => 'Photo Caption'); 
$args['image'] = '@' . realpath($FILE_PATH); 

$data = $facebook->api('/'. $ALBUM_ID . '/photos', 'post', $args); 
print_r($data); 
+0

Điều này làm việc cho tôi! Và mã ngắn hơn và ngọt ngào hơn! – nishantcm

+2

Đừng quên thêm: $ facebook-> setFileUploadSupport (true); – AbeEstrada

+1

@Abe Đúng vậy, bạn cũng có thể chỉ định điều này trong hàm tạo Facebook: $ facebook = new Facebook (mảng ( 'appId' => 'ID', 'secret' => 'SECRET', 'fileUpload' => true, 'cookie' => true)); –

22

Đây là mã mà làm việc cho tôi:

//upload photo 
$file= '/path/filename.jpg'; 
$args = array(
    'message' => 'Photo from application', 
); 
$args[basename($file)] = '@' . realpath($file); 
$ch = curl_init(); 
$url = 'http://graph.facebook.com/'.$album_id.'/photos?access_token='.$access_token; 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_HEADER, false); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_POST, true); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $args); 
$data = curl_exec($ch); 
//returns the photo id 
print_r(json_decode($data,true)); 

Liên kết đến tài liệu: http://developers.facebook.com/docs/reference/api/photo

+1

Wow, bạn là người đàn ông AhDang ! – st4ck0v3rfl0w

+5

Làm thế nào để bạn biết điều này? Bất kỳ tài liệu nào từ Facebook.com? – Billy

+0

Tôi cũng muốn biết nơi bạn tìm thấy điều này! Trừ khi bạn cuộn của riêng bạn? –

7

Bạn phải làm một vài điều để làm cho biểu đồ api hoạt động với php. Mã này hoạt động. Chú ý FileUpload => true ...

Tôi cũng không bao giờ có thể có được nó để làm việc với javascript vì vậy tôi đang làm ajax này:

require './facebook.php';

$facebook = new Facebook(array( 
    'appId' => 'ID', 
    'secret' => 'SECRET', 
    'fileUpload' => true, 
    'cookie' => true // enable optional cookie support 
)); 


$facebook->setFileUploadSupport(true); 

# File is relative to the PHP doc 
$file = "@".realpath("../../_images/stuff/greatness.jpg"); 

$args = array( 
    'message' => 'Photo Caption', 
    "access_token" => "urtoken", 
    "image" => $file 
); 


$data = $facebook->api('/ALBUMID_GOES_HERE/photos', 'post', $args); 
if ($data) print_r("success"); 

+0

Cảm ơn - đó là những gì tôi đã quên với PHP SDK, để đặt setFileUploadSupport thành true! – thaddeusmt

+0

Đơn giản và hiệu quả, công việc tuyệt vời! – Alex

Các vấn đề liên quan