Как читать / отправлять личные сообщения с помощью Facebook C # SDK? - PullRequest
1 голос
/ 05 ноября 2011

Я начинаю с Facebook C # SDK.Как мне работать с сообщениями в официальной документации SDK?Как читать и отправлять сообщения?Есть ли учебник?

Ответы [ 4 ]

4 голосов
/ 02 октября 2012

Чтобы получить доступ к сообщениям (в чате), вам нужно иметь расширенное разрешение read_mailbox (я думаю) и делать:

string facebookToken = "your facebook token here";
var client = new FacebookClient(facebookToken);

dynamic result = client.Get("me/inbox", null);

foreach (dynamic item in result.inbox.data)
{
    //item is a conversation
    //the latest updated conversations come first so
    //im just gona grab the first conversation with unreaded / unseen messages

    if (item.unread > 0 || item.unseen > 0)
    {
        string conversationID = item.id;
        string otherPerson = item.to.data[1].name;//the item.to.data[0] its myself

        //you can access the messages of the conversation like
        //by default it will return the last 25 messages, u can get more, by making a call too
        //"https://graph.facebook.com/{0}/comments?limit={1}" like:
        //dynamic result = client.Get(string.Format("{0}/comments?limit={1}",conversationID, 100), null);
        foreach (dynamic message in item.comments.data)
        {
            //Do want you want with the messages
            string id = message.id;
            string fromName = message.from.name;
            string fromID = message.from.id;
            string text = message.message;
            string createdDate = message.created_time;
        }

        //To send a message in this conversation, just
        dynamic parameters = new ExpandoObject();
        parameters.message = "A message from code!";
        client.Post(string.Format("{0}/comments", conversationID), parameters);
        //or
        //client.Post(string.Format("{0}/comments", conversationID), new Dictionary<string, object> { { "message", "A message from code!" } });

        //NOTE!! - The application must be on white list for you te be able to post a message 
        // read - https://developers.facebook.com/docs/ApplicationSecurity/

        break;
    }
}

Вы можете попробовать на https://developers.facebook.com/tools/explorer

Подробнее в:

Входящие уведомления , Информация о сообщении

Изменения: скоро будут изменения

Надеюсь, это помогло;)

1 голос
/ 19 марта 2014

это как отобразить входящие с помощью c #, asp.net:

protected void Button4_Click(object sender, EventArgs e)
{
    var fb = new FacebookClient(lblToken.Text);

    var query = string.Format(@"SELECT message_id, author_id, body, created_time FROM message WHERE thread_id IN (SELECT thread_id FROM thread WHERE folder_id = 0)");

    dynamic parameters = new ExpandoObject();
    parameters.q = query;
    dynamic results = fb.Get("/fql", parameters);

    List<MyMessage> q = JsonConvert.DeserializeObject<List<MyMessage>>(results.data.ToString());

    GridView4.DataSource = q;
    GridView4.DataBind();

}
1 голос
/ 08 марта 2013

Facebook не позволяет SDK отправлять личные сообщения во избежание неправомерного использования спаммерами

0 голосов
/ 05 ноября 2011

Это для отправки сообщений.

Использование Facebook C # SDK (http://facebooksdk.codeplex.com)

var app = new FacebookApp("access_token");
var parameters = new Dictionary<string, object>();
parameters["message"] = "This is a test message";
app.Api("/me", parameters, HttpMethod.Post);

. Будет опубликовано сообщение на стене текущего пользователя. Вы также можете публиковать изображения с помощью этого SDK.В тестах есть примеры того, как это сделать. Обратите внимание, если вы имели в виду, что хотите отправить им личное сообщение, а не публиковать их на стене, что невозможно. Facebook не позволяет приложениям отправлять сообщения непосредственно пользователям.

...