2010-12-06 28 views
1

也許我完全以錯誤的方式搜索,而facebook文檔在我看來非常糟糕。facebook php API的更多設置

我想知道,我使用下面的設置連接到Facebook,並且工作正常(我能夠檢索已登錄用戶的個人資料信息,允許我的應用程序訪問他的個人資料。)是否有其他選項可以設置,如回調URL和過期(我想永遠不會設置,所以我可以將令牌保存在我的數據庫中並重新使用它)?

這是現在配置:

$facebook = new Facebook(array(
     'appId' => 'xxxxxxxxxxxx', 
     'secret' => 'xxxxxxxxxxxx', 
     'cookie' => true 
    )); 

我也是連接Twitter和那裏我能夠這樣:提前

$this->configTwitter = array(
     'callbackUrl' => 'xxxxxxxxxxxx', 
     'siteUrl' => 'http://twitter.com/oauth', 
     'consumerKey' => 'xxxxxxxxxxxx', 
     'consumerSecret' => 'xxxxxxxxxxxx' 
    ); 

謝謝!

的Facebook應該看看Twitter的

回答

2

中使用它們的更多信息。嘗試幾天後,將文檔圖OAuth 2.0用戶(如預期和搜索互聯網,我發現我用它來創建下面的腳本一個解決方案,它不工作的好:

// Config 
    $this->redirectUrl = 'http://www.mywebsite.com/facebook' 
    $this->clientId = 'APPLICATION_ID'; 
    $this->permissions = 'publish_stream,offline_access'; 

    // Check if a sessions is present 
    if(!$_GET['session']) 
    { 
     // Authorize application 
     header('Location: http://www.facebook.com/connect/uiserver.php?app_id='.$this->clientId.'&next='.$this->redirectUrl.'&perms='.$this->permissions.'&return_session=1&session_version=3&fbconnect=0&canvas=1&legacy_return=1&method=permissions.request'); 
    } 
    else 
    { 
     $token = json_decode($_GET['session']); 
        echo $token->access_token; // This is the access_token you'll need! 

     // Insert token in the database or whatever you want 
    } 

這段代碼的偉大工程,執行以下操作:

  1. 如果用戶是沒有登錄到Facebook
  2. 如果用戶想要添加的應用程序,並授予其請求的權限(在我的情況:publish_stream和offline_access)詢問在一個對話框
  3. 返回到您用的access_token的redirectUrl下指定的頁面(因爲我們要求的離線訪問這個不會過期)

我然後存儲在數據庫中的令牌,所以我不會有再次請求它

現在你可以,如果你想使用facebook代碼,或者您自己的代碼來獲取用戶數據或facebook上的其他信息(請確保您要求d正確的權限)

現在不要,如果這是Facebook的有效代碼,但它的偉大工程,我可以很容易地定義「配置」像我想....

0

有很多設置可以設置在驗證點。擴展權限允許您設置offline_access,以便您可以驗證數據並將其存儲在數據庫中。有關擴展權限的更多信息,請訪問developers.facebook.com/docs/authentication/permissions,並且您可以閱讀我的博客文章,以獲取有關如何在http://www.joeyrivera.com/2010/facebook-graph-api-app-easy-w-php-sdk/