Использование Facebook C # SDK для публикации на странице - PullRequest
1 голос
/ 27 марта 2012

Я уже некоторое время пользуюсь Facebook C # SDK, но у меня действительно старая версия, и я все еще использую REST API (я думаю). Я просто обеспокоен использованием API для публикации на своей странице в Facebook (у меня есть плагин WCMS, который публикует контент на странице нашего учреждения в Facebook). Мне было интересно, если кто-нибудь знает хороший учебник о том, как получить эту установку с последней версией SDK? Я также обеспокоен тем, как это будет работать, когда offline_access пропадет, поэтому любые мысли по этому поводу также будут оценены. Я бы предпочел не заходить вручную и получать новый токен доступа каждые 60 дней. Это кажется несколько ненужным, поскольку приложение, которое я использую для публикации, находится в той же учетной записи FB, что и страница, на которой я пытаюсь опубликовать сообщение.

Ответы [ 3 ]

12 голосов
/ 16 ноября 2012

Вот один из способов сделать это:

    public static string RefreshTokenAndPostToFacebook(string currentAccessToken)
    {
        string newAccessToken = RefreshAccessToken(currentAccessToken);
        string pageAccessToken = GetPageAccessToken(newAccessToken);
        PostToFacebook(pageAccessToken);
        return newAccessToken; // replace current access token with this
    }  

    public static string GetPageAccessToken(string userAccessToken)
    {
        FacebookClient fbClient = new FacebookClient();
        fbClient.AppId = "app id";
        fbClient.AppSecret = "app secret";
        fbClient.AccessToken = userAccessToken; 
        Dictionary<string, object> fbParams = new Dictionary<string, object>();
        JsonObject publishedResponse = fbClient.Get("/me/accounts", fbParams) as JsonObject;
        JArray data = JArray.Parse(publishedResponse["data"].ToString());

        foreach (var account in data)
        {
            if (account["name"].ToString().ToLower().Equals("your page name"))
            {
                return account["access_token"].ToString(); 
            }
        }

        return String.Empty; 
    }

    public static string RefreshAccessToken(string currentAccessToken)
    {
        FacebookClient fbClient = new FacebookClient();
        Dictionary<string, object> fbParams = new Dictionary<string, object>();
        fbParams["client_id"] = "app id";
        fbParams["grant_type"] = "fb_exchange_token";
        fbParams["client_secret"] = "app secret";
        fbParams["fb_exchange_token"] = currentAccessToken;            
        JsonObject publishedResponse = fbClient.Get("/oauth/access_token", fbParams) as JsonObject;
        return publishedResponse["access_token"].ToString(); 
    }

    public static void PostToFacebook(string pageAccessToken)
    {
        FacebookClient fbClient = new FacebookClient(pageAccessToken); 
        fbClient.AppId = "app id";
        fbClient.AppSecret = "app secret";
        Dictionary<string,object> fbParams = new Dictionary<string,object>();
        fbParams["message"] = "Test message";            
        var publishedResponse = fbClient.Post("/your_page_name/feed", fbParams);
    }
2 голосов
/ 27 марта 2012

Я бы порекомендовал вам начать с чтения этого блога. http://blog.prabir.me/post/Facebook-CSharp-SDK-Writing-your-First-Facebook-Application-v6.aspx

И эта документация http://csharpsdk.org/docs/making-synchronous-requests

1 голос
/ 19 октября 2012

http://blog.prabir.me/post/Facebook-CSharp-SDK-Making-Requests.aspx

и найдите график API сообщения

Я надеюсь, что однажды Прабир и Натан закончат работу над документами для веб-сайта, и мы изучим это ясно. Пока. Просто копайте в Интернете.

...