2010-09-15 75 views
2

我正在使用Facebook C#API創建應用程序。爲什麼我需要身份驗證時需要的是公共Facebook數據?

我想讀data on this wall,但是當我調用API,基本上打這個網址:https://graph.facebook.com/123176767150,我得到這個錯誤:

{ 
    "error": { 
     "type": "OAuthException", 
     "message": "An access token is required to request this resource." 
    } 
} 

爲什麼需要認證,以獲得公共數據,我可以看到沒有登錄到Facebook帳戶?

回答

10

因爲Facebook並不介意你作爲用戶看到這些信息,但不希望應用程序能夠收集數據。很明顯,使用圖形api將每個人的帖子從羣組中刪除到羣組牆上(假設)比手動完成要快得多。沒有access_token的唯一公開可用信息是基本用戶信息(並且這僅適用於用戶而不是任何其他對象)。爲了實現你想要的,你必須獲得一個access_token。

這與用戶在登錄Facebook時可以看到任何人的朋友的事實相同,但作爲應用程序,您只能看到授權用戶的朋友。

  1. 做一個GET請求:

    https://graph.facebook.com/oauth/access_token?grant_type=client_credentials&client_id=CLIENT_ID&client_secret=CLIENT_SECRET 
    
  2. 你可以,但是,與通過以下方法鑑別訪問非特定於用戶的私人信息的能力驗證您的應用程序

    Facebook回覆:

    access_token=SOME_TOKEN 
    
  3. 使用此令牌作爲您的訪問令牌,它應該允許您訪問該組。我已經用我的應用程序測試過了,並且可以確認它的工作。

  4. 你可以通過請求,請求長城信息:

    https://graph.facebook.com/123176767150/feed?access_token=SOME_TOKEN 
    

hereAuthenticating as an Application部分

+0

所以如果我想讀完整的牆壁,我需要創建一個Facebook帳戶?是否有創建一個系統帳戶只是爲了這些目的,因爲我試圖爲非盈利性網站做到這一點,所以我不想讓我的個人登錄與此相關 – leora 2010-09-15 11:51:00

+0

在我的答案中查看我的更新回覆 – BeRecursive 2010-09-15 12:34:30

+0

澄清:您有有一個帳戶來製作一個Facebook應用程序。詳細的方法允許代表您的應用程序 – BeRecursive 2010-09-15 12:39:18

0

使FB知道誰在請求數據。 FB需要知道訪問任何類型數據的代理。

+0

訪問非用戶特定的私人信息,所以如果我想讀完整的牆壁,我是否需要創建一個Facebook帳戶?是否有創建一個系統帳戶只是爲了這些目的,因爲我試圖爲非盈利性網站做到這一點,所以我不希望我的個人登錄與此相關聯 – leora 2010-09-15 12:02:49

相關問題