Facebook FQL page_user - PullRequest
       22

Facebook FQL page_user

0 голосов
/ 21 сентября 2011

Правильно, у меня есть проблема, которую я так много исследовал, что до сих пор не могу ее решить. Я пытаюсь добиться того, чтобы пользователь facebook НРАВИТСЯ моей страницей, а не приложением, и я хочу получить возможность получать доступ ко всем пользователям, которым понравилась страница facebook.

Я использую FQL, но мне совсем не повезло, если я делаю FQL, основываясь на администраторах страницы, он выводит данные.

SELECT first_name, last_name FROM user WHERE uid IN (SELECT uid FROM page_fan WHERE page_id = [your page id]) 

вышеуказанный FQL должен работать. Но ничего не отображается, это ошибка на Facebook, которая не была помечена или исправлена?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using MVCFacebookTestApp.Models;
using Facebook;
using Facebook.Web;


namespace MVCFacebookTestApp.Controllers
{
public class HomeController : Controller
{

    public FacebookSession FacebookSession
    {
        get { return (FacebookWebContext.Current.Session); }
    }
    public ActionResult Index()
    {
        string request = Request.Form["signed_request"];

        string accessToken = "";

        if (Request.Form["access_token"] != null)
        {
            accessToken = Request.Form["access_token"];
        }

        FacebookApplication app = new FacebookApplication();

        FacebookSignedRequest result = FacebookSignedRequest.Parse(app.InnerCurrent, request);

        if (String.IsNullOrWhiteSpace(accessToken))
        {
            accessToken = result.AccessToken;
        }

        dynamic data = result.Data;

        bool liked = data.page.liked;
        //bool liked = true;

        if (!liked)
        {
            Home h = Home.NotLiked();
            return View(h);
        }
        else
        {
            Home h = Home.Liked();

            FacebookWebClient fb = null;

            if (String.IsNullOrWhiteSpace(accessToken))
            {
                var fbRequest = FacebookWebContext.Current;
                if (fbRequest.IsAuthorized())
                    fb = new FacebookWebClient(fbRequest);
            }
            else
            {
                fb = new FacebookWebClient(accessToken);
            }

            if (fb != null)
            {

                dynamic r = fb.Get("/me");

                h.TestString2 += " Ha! We captured this data about you!";

                h.TestString2 += " Name: " + r.name;

                h.TestString2 += " Location: " + r.location;

                h.TestString2 += " Birthday: " + r.birthday;

                h.TestString2 += " About Me: " + r.aboutme;

                h.ImgUrl = "http://graph.facebook.com/" + r.id + "/picture?type=large";



                string fqlResult = "";
                var fbApp = new FacebookClient(accessToken);

                //basic fql query execution
                dynamic friends = fbApp.Query("SELECT uid FROM page_admin WHERE page_id='160828267335555'");

                //SELECT uid FROM page_fan WHERE page_id = 160828267335555

                //"SELECT uid FROM page_fan WHERE uid=me() AND page_id=<your page id>";

                //loop through all friends and get their name and create response containing friends' name and profile picture
                foreach (dynamic friend in friends)
                {
                    fqlResult += friend.uid + "<br />";
                    //fqlResult += friend.name + "<img src='" + friend.pic_square + "' alt='" + friend.name + "' /><br />";
                }

                ViewBag.Likes = fqlResult;
            }
            else
            {
                //Display a message saying not authed....
            }


            return View(h);

        }
    }
}
}

есть ли решение, которое действительно работает? Пожалуйста, вернись ко мне как можно скорее, ваша помощь будет высоко ценится, спасет меня от потери всех моих волос от стресса LOL

Заранее спасибо.

1 Ответ

1 голос
/ 31 октября 2011

Вы можете сделать запрос GET на /USER_ID/likes/PAGE_ID (заменив заглавные буквы соответствующими идентификаторами), чтобы проверить, является ли конкретный пользователь фанатом вашей страницы.Это замена для старого метода API «pages.isFan».Нет способа получить список пользователей, которым нравится ваша страница.

...