Как получить друзей пользователя из Facebook и отправить им все сообщения, используя C # Facebook SDK? - PullRequest
0 голосов
/ 25 мая 2011

Я пишу libraty, который даст интерфейс для получения друзей Пользователя из Facebook и отправки им всех сообщений с помощью C # Facebook SDK («Как отправлять сообщения», я вижу некоторые темы здесь, так что это не главноена данный момент мне нужно получить друзей пользователя).

Итак, я создаю приложение, добавляю библиотеку Facebook, создаю приложение на Facebook и получаю APP_ID и секрет APP.

Я пытаюсь написать 3-й день, используя документацию.Вот что я получил:

        var fb = new FacebookApp("My_APP_Id", "MySecret");
        var accessToken = fb.Session.AccessToken;

        var app = new FacebookApp(accessToken);
        var result = (JsonObject)app.Get("/HereMyId/friends");
        var model = new List<Friend>();

        foreach (var friend in (JsonArray)result["data"])
            model.Add(new Friend()
                          {
                              Id = (string) (((JsonObject) friend)["id"]),
                              Name = (string) (((JsonObject) friend)["name"])
                          });
        text.Text += "<br/>";
        foreach (Friend res in model)
        {
            text.Text += res.Id + "<br/>";
            text.Text += res.Name + "<br/>";
        }
public class Friend
{
    public string Id { get; set; }
    public string Name { get; set; }
}

У меня следующая ошибка:

Невозможно найти всех друзей из 100002435634. Могу искать только зарегистрированного пользователя (0) или друзей пользователя.вошел в систему пользователя с соответствующим разрешением.

Как мне войти в систему пользователя?Может быть, я не понимаю, как это должно работать.

Итак, у меня есть пара вопросов:

  1. Могу ли я взять Login и Pass пользователя и подключиться как, или, может быть, я могу дать некоторые разрешения для приложения, или как этодолжен работать?

  2. Как я могу получить информацию о друзьях из Facebook?

Ответы [ 3 ]

1 голос
/ 09 августа 2012

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

public void ShowFriendList(string at, string id)
{
    //var fb = new FacebookApp("My_APP_Id", "MySecret");
    var accessToken = at;

    Facebook.FacebookClient app = new Facebook.FacebookClient(accessToken);
    var result = (Facebook.JsonObject)app.Get("/" + id + "/friends");
    var model = new List<fbUser>();  //model = friendlist array
    int i = 5; //limit to five friends

    foreach (var friend in (Facebook.JsonArray)result["data"])
    {
        if (i != 0)
        {
            model.Add(new fbUser()
            {
                ID = (string)(((Facebook.JsonObject)friend)["id"]),
                Name = (string)(((Facebook.JsonObject)friend)["name"])


            });
            i = i - 1;
        }
        else
        {
            break;
        }
    }
    lblreport.Text += "<br/>";
    foreach (fbUser res in model)
    {
        lblreport.Text += res.ID + "<br/>";
        lblreport.Text += res.Name + "<br/>";
    }
   }

Я только заменил элемент управления выводом текста и класс Friend на метку lblreport и класс fbUser соответственно, просто замените их обратно, если хотите.

Единственное, что вы пропустили, это то, что вы использовали приложение access_token вместо зарегистрированного пользователя access_token, как вы и планировали. В противном случае ваш код был отличным примером для извлечения списка друзей из объекта Json Facebook, что я и сделал в первую очередь. Надеюсь, это поможет. PS: я впервые отвечаю на stackoverflow, поэтому я надеюсь, что внесу свой вклад в этот замечательный ресурсный сайт.

1 голос
/ 25 мая 2011

Ваша регистрация приложения Facebook должна явно заявить, что вам необходимо разрешение на чтение списка друзей. Требуемые разрешения передаются с использованием параметра scope во время аутентификации.

0 голосов
/ 13 марта 2013
var client = new FacebookClient(access_token);
var result = client.Get("/me/friends?fields=picture,name") as JsonObject;
JavaScriptSerializer js = new JavaScriptSerializer();
string str = result ["data"].ToString();
List<Friends> objFriends = (List<Friends>)js.Deserialize(str, typeof(List<Friends>));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...