2

我希望用戶通過網站上的窗體張貼在Facebook頁面上的圖像。 當他們在本網站上通過Facebook登錄後,他們可以從他們的電腦中選擇一張圖片。Facebook的:張貼圖像和描述到牆上和頁面相冊通過PHP

一旦他們選擇的圖像,我希望它被張貼到用戶的牆,在我的管理員之一的頁面的專輯。

我創造了這個應用程序,但我們似乎無法找到一種方式來獲得應用程序發佈此的Facebook頁面上。

我們是否需要在此頁面或應用上設置任何權限?

回答

5

上傳圖片到Facebook的網頁,其中的你,你需要做以下的管理:

1)創建一個Facebook應用程序(通常的方式),請確保您指定的URL帆布

2)導航到下面的網址登錄的頁面管理,並給予權限(user_photos,manage_pages,offline_access,publish_stream)

https://www.facebook.com/dialog/oauth? 
    client_id=<application_id> 
    &redirect_uri=<canvas_url> 
    &response_type=token 
    &scope=user_photos,manage_pages,offline_access,publish_stream 

3)當您將所需的應用您將被重定向到canvas_url的權限#的access_token = * *的access_token,例如

http://example.com/#access_token=awe12 

4.)然後,導航到

https://graph.facebook.com/me/accounts?access_token=<access_token> 

(使用從#3中的接入令牌)。這將列出您管理的頁面;寫下對的access_token頁面(縣)要上傳的圖片

我不是100%肯定,但我認爲,使用圖形API,你可以上傳圖片只能通過圖形API創建的相冊;即您需要先通過圖形api創建一個相冊。下面是示例代碼使用curl:

$uri = sprintf( 
    'https://graph.facebook.com/%1$s/albums?access_token=%2$s', 
    $page_id, 
    $access_token 
); 

$post_fields = array(
    'name' => trim($album_name) 
); 

$curl = curl_init($uri); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($curl, CURLOPT_POST, TRUE); 
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_fields); 

$raw_data = curl_exec($curl); 
curl_close($curl); 

$data = json_decode($raw_data, $assoc = TRUE); 

$data上面會包含相冊ID,你需要上傳一張照片:

// prepare the curl post fields 
$batch = sprintf(
    '[{"method":"POST", "relative_url":"%1$s/photos", "attached_files":"file1"}]', 
    $album_id 
); 

$post_fields = array(
    'batch' => $batch, 
    'access_token' => $access_token, 
    'file1' => '@' . $image_abs_path 
); 
$uri = 'https://graph.facebook.com'; 

$curl = curl_init($uri); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($curl, CURLOPT_POST, TRUE); 
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_fields); 

$raw_data = curl_exec($curl); 
curl_close($curl); 

$data = json_decode($raw_data, $assoc = TRUE); 
+1

輝煌!這個伎倆!非常感謝! – ThoDho 2012-02-22 15:55:38

+0

感謝您昨天的回覆。但我仍然有問題。我總是需要手動生成頁面的訪問令牌。有沒有辦法獲得這個頁面的訪問令牌不會過期? – ThoDho 2012-02-23 16:35:22

+1

如果您在步驟2中添加了'offline_access')訪問令牌不應該過期 – scibuff 2012-02-23 17:24:34