Я пытаюсь использовать Facebook C # SDK в моем существующем веб-приложении ASP.NET.Мое намерение состоит в том, чтобы позволить пользователям обойти проверку подлинности форм, нажав на ссылку Facebook.URL-адрес этой ссылки следующий:
<a href="https://www.facebook.com/dialog/oauth?client_id=0000000000000&redirect_uri=http://localhost:2708/fboauth.aspx&scope=offline_access">facebook</a>
Facebook обрабатывает запрос, а затем перенаправляет обратно на fboauth.aspx, за которым следует следующий код ...
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Facebook;
using System.Net;
using System.IO;
namespace StorageByMail20
{
public partial class fboauth : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string code;
code = Request.QueryString["code"];
Label1.Text = code;
string token;
string url = "https://graph.facebook.com/oauth/access_token?client_id=000000000000000&redirect_uri=http://localhost:2708/fboauth.aspx&client_secret=000000000000000000000000&code=" + code;
WebRequest request = WebRequest.Create(url);
WebResponse response = request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream());
token = reader.ReadToEnd();
string decodedtoken = HttpUtility.UrlDecode(token);
Facebook.FacebookAPI api = new Facebook.FacebookAPI(decodedtoken);
JSONObject result = api.Get("/first_name");
string name = result.Dictionary["first_name"].String;
Label2.Text = token;
Label3.Text = name;
}
}
}
На этой странице я пытаюсь сделать следующее:
- Разобрать код авторизации из ответа Facebook
- Используйте код авторизации для получениятокен аутентификации из Facebook
- Выполните вызов JSON, используя код аутентификации для получения информации о пользователе (имя, адрес электронной почты и т. д.)Я сделаю что-то более интересное с данными. Пока я просто пытаюсь заставить API-взаимодействия работать правильно).
Все работает, как и предполагалось, до вызова JSON.Если я закомментирую эту строку, я в порядке.В противном случае Facebook возвращает ошибку (400) Bad Request.Может кто-нибудь определить, где я ошибся?
Примечание: здесь сообщается об известной ошибке https://github.com/facebook/csharp-sdk/issues, которая связана с проблемами кодирования с токеном доступа.Я думаю Я обратился к этому с моим использованием UrlDecode.Кроме того, обратите внимание, что SDK, который я собираюсь использовать, является официальным (в настоящее время в Альфа-версии) от Facebook.Сообщество создало несколько других C # SDK.
Вот несколько особенно полезных статей, которые я обнаружил при исследовании своей проблемы.
onishimura.com / 2010/08/11 / facebook-c-and-asp-net-mvc-code-samples-for-friends-list-активность-list-and-wall-posts /
multitiered.wordpress.com / 2010/08/05 / получение-started-with-the-facebook-c-sharp-sdk /
* Я удалил "http://" из ссылок выше. Очевидно, мне нужно больше очков репутации, прежде чем SO позволит мне включить более двух ссылокИзвините, ребята!