Использование обратного вызова DeAuth от Facebook с C # SDK - PullRequest
0 голосов
/ 24 января 2011

Я пытаюсь обработать обратный вызов DeAuth из Facebook в моем .Net MVC3, чтобы я мог получить идентификатор пользователя и удалить пользователя из своей базы данных.

Я создал действие, которое записывает вфайл журнала (для целей отладки), в котором используется код из этого ответа :

FacebookApp app = new FacebookApp();
string accessToken = app.Session.AccessToken;
long userId = app.UserId;

Сначала мой код завершился ошибкой: app означает null.Затем я попытался добавить CanvasAuthorizeAttribute к Controller, что тоже не сильно помогло.Есть ли какой-то другой атрибут, который я должен был добавить вместо?Или есть что-то еще, что я не прав?

Редактировать:

Я использую SDK версии 4.2.1.

Edit 2: Благодаря Pat Я понял, что следующий код выполняет работу (без каких-либо атрибутов в действии или контроллере).

var app = new FacebookApp();
var userId = app.SignedRequest.UserId;

1 Ответ

2 голосов
/ 25 января 2011

Я делаю это, анализируя подписанный запрос, который появляется, когда Facebook попадает на вашу страницу DeAuth:

string signedRequestValue = Request.Form["signed_request"];
var app = new FacebookApp();
var sig = app.ParseSignedRequest(signedRequestValue);
long userid = sig.UserId;

Я использую предыдущий выпуск SDK, который мне пришлось изменить, чтобы сделать ParseSignedRequest общедоступным (это былоконфиденциально), но я считаю, что в последнем выпуске 4.2.1, который вы используете, это публичный метод.

...