4

我試圖讓用戶在我的網站上發佈圖像到特定Facebook頁面上的相冊。 之前,他可以選擇他的電腦,他需要在Facebook上記錄的圖像,必須給予必要的權利,我們的應用程序(散流)將圖像發佈到預定義網頁上的相冊

對於選定的圖像發佈到我們的頁面的專輯,我們需要一個訪問令牌,所以我們有正確的權限來執行此操作。 我們可以通過執行以下步驟得到手的權限:

  1. 導航到以下鏈接登錄的頁面管理,並給予權限(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 
    
  2. 當你給應用程序,你會被重定向到canvas_url#=的access_token * ACCESS_TOKEN *所需的權限,例如

    http://example.com/#access_token=awe12 
    
  3. 然後導航到

    https://graph.facebook.com/me/accounts?access_token=#access_token 
    (using the access token from 2). 
    

    這將列出您管理的頁面;寫下你想上傳圖片的頁面的access_token

現在,有沒有辦法做到這一點automagically? 或更好,有沒有辦法爲這個頁面生成一個訪問令牌,永遠不會過期?

+0

你好。假設如果您具有offline_access權限,則表示您可以隨時代表用戶請求訪問令牌。沒有沒有過期日期的訪問令牌,但是您可以(在授予第一個權限後)請求您自己的訪問令牌,然後自動執行所有過程。 – gvillavizar 2012-04-06 04:41:29

回答

1

您不必使用頁面的access_token來發布到頁面相冊。如果您使用該頁面的access_token,則圖像將顯示爲它是由頁面(而不是由用戶)發送的。

只要該相冊具有公共訪問權限(意味着任何人都可以將照片上傳到網頁的相冊中)。所有你需要的是要求用戶授予你publish_stream權限,並用他的access_token上傳圖像。

如果你用PHP SDK做它應該是這個樣子:

$facebook->api("ALBUM_ID/photos","POST",array(
     "message"=>"some message", 
     "source"=>"@PATH_TO_IMAGE" 
)); 

當然,你將需要啓用在$facebook對象imageUpload,並通過腳本signed_request或設置中access_token以便SDK使用當前用戶的access_token。

相關問題