2012-09-13 26 views
0

好吧,所以我想使用AJAX發佈到Facebook。問題是我得到,我沒有登錄。這是被請求的頁面。配置只包含我的facebook應用程序認證詳細信息我想我只是不明白什麼需要做的事情,當我試圖用ajax做這個請求時,我試過的所有事情都返回了0(沒有用戶)。Ajax的Facebook的帖子與PHP

<?php 
require_once 'includes/config.php'; 

//Including facebook php sdk file 
require_once 'includes/php-sdk/facebook.php'; 

//Creating our application instance 
$facebook = new Facebook(array(
      'appId' => APP_ID, 
      'secret' => APP_SECRET, 
      'cookie' => true 
     )); 

//Get User ID 
$user = $facebook->getUser(); 

if ($user) { 
    try { 
     // Proceed knowing you have a logged in user who's authenticated. 
     $user_profile = $facebook->api('/me'); 
     $access_token = $facebook->getAccessToken(); 
    } catch (FacebookApiException $e) { 
     error_log($e); 
     $user = null; 
    } 
    //In order to post to the page later on we need to generate an Access Token for that page, to do this we get me-accounts in the following api call 
    $accounts = $facebook->api('/me/accounts'); 
} 
+0

不太清楚我是如何工作的,但目前看起來像我對$ access_token變量沒有做任何事情。此外,這是PHP使用CURL而不是AJAX – xorinzor

+0

我知道,在片段中我沒有做任何事情,關鍵是我永遠不會有機會做任何事情,因爲($ user)永遠是假的。 – user1620152

+0

閱讀關於oAuth和訪問令牌的一些事情 –

回答

0

看一看https://github.com/facebook/facebook-php-sdk/blob/master/examples/example.php

在那裏說

$facebook = new Facebook(array(
    'appId' => '344617158898614', 
    'secret' => '6dc8ac871858b34798bc2488200e503d', 
)); 

// Get User ID 
$user = $facebook->getUser(); 

// We may or may not have this data based on whether the user is logged in. 
// 
// If we have a $user id here, it means we know the user is logged into 
// Facebook, but we don't know if the access token is valid. An access 
// token is invalid if the user logged out of Facebook. 

if ($user) { 
    try { 
    // Proceed knowing you have a logged in user who's authenticated. 
    $user_profile = $facebook->api('/me'); 
    } catch (FacebookApiException $e) { 
    error_log($e); 
    $user = null; 
    } 
} 

// Login or logout url will be needed depending on current user state. 
if ($user) { 
    $logoutUrl = $facebook->getLogoutUrl(); 
} else { 
    $loginUrl = $facebook->getLoginUrl(); 
} 

試試這個代碼,有可能是你從來沒有與Facebook帳戶的API使用的loggedIn(以這種情況下我指的是代碼的getLogoutUrl()和getLoginUrl()位),在這種情況下,您需要使用例如以下代碼引用用戶到$ loginUrl:

header("location: $loginUrl"); 
+0

好的,所以也許這將有助於找到解決方案。以下是我正在使用的這些步驟。如果我到目標頁面並直接請求它,我必須刷新頁面幾次,然後連接到Facebook,在頁面連接到Facebook後,我可以返回並提交帶有ajax請求的表單,因爲我需要。有任何想法嗎? – user1620152

+0

我的決議是包含javascript sdk。仍然不相信這是正確的或唯一的方式來做到這一點,但它的工作原理。 – user1620152