Система рекомендаций, использующая данные профиля Facebook - PullRequest
0 голосов
/ 22 октября 2011

Итак, я создаю систему рекомендаций, которая выдает рекомендации на основе данных профиля Facebook. Итак, я установил базовую структуру для пользователя, чтобы войти через Facebook connect, авторизовать разрешения для приложения и попасть на страницу перенаправления, которая отображает данные профиля пользователя в JSON в виде серии массивов (которые я вставил ниже ). Итак, теперь мне нужно создать установку, которая выдает рекомендации, основанные на конкретных фрагментах данных. Например: если пользователь пошел в эту школу, или учится в этом, или живет здесь, или это старый, рекомендуйте это. Я привык делать это с переменными в PHP, обычно через формы, отправленные вручную. Итак, как мне взять эти выходные данные, которые я, очевидно, не хочу отображать в браузере в конечном продукте, превратить их в переменные на стороне сервера, чтобы я мог создавать операторы if else для выдачи рекомендаций. Я бы использовал идентификационные номера объектов Facebook вместо текста, то есть я бы обозначил школу или специальность по ее идентификатору Facebook, а не по фактическому названию, например UCF или Finance.

Так что, по сути, я пытаюсь выполнить две вещи. 1. Снимите данные с браузера и проанализируйте их на стороне сервера в PHP. 2. Превратите данные в некоторую форму, которую я могу вызывать в выражениях if_else индивидуально (и коллективно), чтобы выдавать выражения выражений if else (предпочтительно в PHP). Сейчас данные ниже вызываются коллективно через $ userInfo, поэтому нет возможности вызвать их по отдельности.

Я вызываю довольно много данных из профиля пользователя, так что это сложная задача, которую я знаю, и я относительно новичок в программировании (около 9 месяцев). Я просто, кажется, полностью потерян. Любое руководство будет с благодарностью.

Как данные в настоящее время вызываются через Graph API:

if ($user){
        //get user basic description
        $userInfo           = $facebook->api("/$user");

Как данные отображаются на стороне клиента:

 <td>
                <!-- Data retrived from user profile are shown here -->
                <div class="box">
                    <b>User Information using Graph API</b>
                    <?php d($userInfo); ?>
                </div>
            </td>

И вывод ниже:

Array
(
    [id] => 619011251
    [name] => Matt McClintock
    [first_name] => Matt
    [last_name] => McClintock
    [link] => http://www.facebook.com/MattMcClint
    [username] => MattMcClint
    [birthday] => 08/15/1988
    [hometown] => Array
    (
        [id] => 102184499823699
        [name] => Montreal, Quebec
    )

[location] => Array
    (
        [id] => 108288992526695
        [name] => Orlando, Florida
    )

[education] => Array
    (
        [0] => Array
            (
                [school] => Array
                    (
                        [id] => 111894272160018
                        [name] => Spanish River Community High School
                    )

                [year] => Array
                    (
                        [id] => 137616982934053
                        [name] => 2006
                    )

                [type] => High School
            )

        [1] => Array
            (
                [school] => Array
                    (
                        [id] => 35078114590
                        [name] => University of Central Florida
                    )

                [year] => Array
                    (
                        [id] => 118118634930920
                        [name] => 2012
                    )

                [concentration] => Array
                    (
                        [0] => Array
                            (
                                [id] => 104076956295773
                                [name] => Computer Science
                            )

                        [1] => Array
                            (
                                [id] => 107870585903083
                                [name] => Finance
                            )

                    )

                [type] => College
            )

    )

[gender] => male
[email] => matt@smartkrawl.com
[timezone] => -4
[locale] => en_US
[verified] => 1
[updated_time] => 2011-10-16T17:45:56+0000
)

1 Ответ

0 голосов
/ 23 октября 2011

После некоторого устранения неполадок я нашел простое, но сложное для реализации решение. Сначала вам нужно сразу инициализировать SDK следующим образом:

<?php
require_once('php-sdk/facebook.php');

$config = array(
'appId' => 'XXXXXXXXXXXXXXXXXX',
'secret' => 'XXXXXXXXXXXXXXXX',
);

$facebook = new Facebook($config);
$user_id = $facebook->getUser();
?>

Затем мы проверяем, вошли ли пользователи в данный момент, и просим их войти в систему, если это не так:

<?
if($user_id) {

  // We have a user ID, so probably a logged in user.
  // If not, we'll get an exception, which we handle below.
  try {

    $user_profile = $facebook->api('/me','GET');


  } catch(FacebookApiException $e) {
    // If the user is logged out, you can have a 
    // user ID even though the access token is invalid.
    // In this case, we'll get an exception, so we'll
    // just ask the user to login again here.
    $login_url = $facebook->getLoginUrl(); 
    echo 'Please <a href="' . $login_url . '">login.</a>';
    error_log($e->getType());
    error_log($e->getMessage());
  }   
} else {

  // No user, print a link for the user to login
  $login_url = $facebook->getLoginUrl();
  echo 'Please <a href="' . $login_url . '">login.</a>';

}

?>

Теперь вы можете вызывать любые данные из профиля пользователя Facebook, например:

<?php
if ($user_profile['education'][0]['school']['id']=='111894272160018') {
    echo "Finally. It worked";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...