Ajax пост в Facebook с php

0

Хорошо, поэтому я пытаюсь отправить в facebook с помощью ajax. Проблема в том, что я получаю, что я не вошел в систему. Это запрашиваемая страница. config просто включает мои данные проверки подлинности приложения facebook. Думаю, я просто не понимаю, что нужно сделать, все, что я попробовал, вернул 0 (без пользователя) при попытке выполнить этот запрос с помощью ajax.

<?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 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
  • 0
    Я знаю, что во фрагменте я ничего с этим не делаю, дело в том, что у меня никогда не будет возможности что-либо с этим сделать, поскольку ($ user) всегда ложно.
Показать ещё 1 комментарий
Теги:
facebook

1 ответ

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 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 (в этом случае im ссылается на бит кода getLogoutUrl() и getLoginUrl()), и в этом случае вам нужно будет ссылаться на пользователя к $ loginUrl, используя, например:

header("location: $loginUrl");
  • 0
    Хорошо, возможно, это поможет найти решение. Вот шаги, которые я использую, чтобы сделать эту работу. Если я перехожу на целевую страницу и запрашиваю ее напрямую, мне необходимо несколько раз обновить страницу, после чего она подключается к Facebook, после того как страница подключена к Facebook, я могу вернуться и отправить форму с запросом ajax, так как я нужно. Есть идеи?
  • 0
    Решение для меня было включить Javascript SDK. До сих пор не убежден, что это правильный или единственный способ сделать это, но это работает.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню