Подписки в реальном времени - PullRequest
0 голосов
/ 18 января 2012

Добрый день, Я использую версию 5.4.1 Facebook C # SDK. Я должен отметить, что я использую исходный код напрямую, а не библиотеки DLL (в случае, если это имеет какое-либо значение).

Таким образом, тот факт, что атрибуты фильтра настроены, является удивительным (спасибо команде разработчиков:).

Моя проблема возникает во время первоначального запроса (прежде чем я использую проверку ответа GET от Facebook)

Вот мой первоначальный запрос:

dynamic result = fb.Post(
                string.Format("/{0}/subscriptions", 
                     FacebookApplication.Current.AppId),
                new Dictionary<string, object>
                    {
                        {"object", "user"},
                        {"fields", "friends"},
                        {
                            "callback_url",
                            "http://localhost:16917/subscription/verify"
                            },
                        {
                            "verify_token",
                            "77FB802F-1147-48F0-BB0F-E4E9BC1FBCFC"
                            }
                    });

Я обнаружил, что внутренне выдается исключение, и через Fiddler я вижу, что запрос никогда не отправляется. Исключение составляет:

$exception  {"(OAuthException) (#15) This method must be called with an app access_token."} System.Exception {Facebook.FacebookOAuthException}

Сначала я подумал, что это может быть связано с методом PrepareRequest Facebook.FacebookClient:

if (httpMethod == HttpMethod.Get)
{
    // for GET, all parameters goes as querystrings
    input = null;
    queryString.Append(FacebookUtils.ToJsonQueryString(parameters));
}
else
{
    if (parameters.ContainsKey("access_token"))
    {
        queryString.AppendFormat("access_token={0}", parameters["access_token"]);
        parameters.Remove("access_token");
    }
}

но комментирование строки parameters.Remove("access_token"); не имело значения.

Любая помощь будет принята с благодарностью!

Ответы [ 2 ]

1 голос
/ 19 января 2012

Вам нужно будет использовать приложение access_token.

Вы можете легко создать приложение access_token, используя следующий конструктор.

var fb = new FacebookClient("appid", "appsecret");
dynamic result = fb.Post( .... );
1 голос
/ 18 января 2012

Какой токен доступа вы используете?

Используете ли вы токен доступа пользователя или токен доступа к приложению?

Если вы используете токен доступа пользователя, посмотрите здесь http://developers.facebook.com/docs/authentication/#app-login, как получить токен доступа к приложению.

...