#asp.net #facebook
#asp.net #Facebook
Вопрос:
я пытаюсь разработать приложение, которое позволит мне обмениваться данными на стене Facebook.
Например: рассмотрим приложение Facebook Canvasapp «Запуск с друзьями». Это приложение canvas, использующее Python и Php. https://developers.facebook.com/docs/samples /. Я смогу обмениваться данными из этого приложения на своей стене./ me
Перед этим мне нужен токен доступа. Я смог получить авторизацию, доступ, используя Graph api, Oauth2.0, C #, asp.net
public string AuthorizationLinkGet(bool bUserInfo, bool bFriends, bool bfeed, bool bPhotos, bool bEvents, bool bMessages)
{
string url = string.Format("{0}?client_id={1}amp;redirect_uri={2}", AUTHORIZE, this.ConsumerKey, CALLBACK_URL);
if (bUserInfo == true || bFriends == true || bfeed == true || bEvents == true || bPhotos == true || bMessages == true)
{
url = "amp;scope=email";
if (bUserInfo == true)
{
url = ",user_about_me,user_interests,user_likes,user_location,user_notes,user_education_history,user_hometown";
}
if (bFriends == true)
{
url = ",read_friendlists,user_groups";
}
if (bfeed == true)
{
url = ",read_stream";
}
if (bEvents == true)
{
url = ",user_events";
}
if (bEvents == true)
{
url = ",user_photo_video_tags";
}
if (bMessages == true)
{
url = ",read_mailbox";
}
}
return url;
}
<add key="APIKey" value="*************************"/>
<add key="Secret" value="**********************"/>
Итак, теперь, как я могу обмениваться данными из приложения на моей стене FB.
Я пробовал Sharekit, но похоже, что Sharekit предназначен для мобильных приложений.
public void AccessTokenGet(string authToken)
{
this.Token = authToken;
string accessTokenUrl = string.Format("{0}?client_id={1}amp;redirect_uri={2}amp;client_secret={3}amp;code={4}",
ACCESS_TOKEN, this.ConsumerKey, CALLBACK_URL, this.ConsumerSecret, authToken);
string response = WebRequest(Method.GET, accessTokenUrl, String.Empty);
if (response.Length > 0)
{
//Store the returned access_token
NameValueCollection qs = HttpUtility.ParseQueryString(response);
if (qs["access_token"] != null)
{
this.Token = qs["access_token"];
}
}
}
кто-нибудь знает, как разработать это приложение canvas на C # с использованием Graph Api
Я понятия не имею обо всех завитушках и вещах в Php, я вижу, что люди используют REST, facebookservice, facebook SDK. Где это подойдет?
Спасибо
Солнце
Комментарии:
1. Шаг 1: Не интегрируйтесь с Facebook, потому что это ВСЕГДА кошмар, особенно с .NET. (Извините, ничего не мог с собой поделать 🙂
Ответ №1:
- Запрашивайте разрешение на публикацию потока.
-
Вам нужно опубликовать в https://graph.facebook.com/USER_ID/feed/access_token=lerolero , публикуя json, подобный этому:
{«имя»: «имя» «ссылка»: «http://www.link.com /», «подпись»: «заголовок», «описание»: «описание», «картинка»: «http://www.link.com/image.jpg «}
http://developers.facebook.com/docs/reference/api /, прочитайте раздел публикации, вы можете отправить много другой информации.
Редактировать:
Я вижу две возможности.
-
Если интеграция с Facebook не входит в ваши деловые правила (если вы не будете использовать информацию о пользователе), вы можете просто добавить виджет «ПОДЕЛИТЬСЯ», в этом случае пользователь увидит кнопку, и когда он нажмет на кнопку, откроется страница аутентификации facebook, и когда аутентификация будет завершена.готово, виджет «Поделиться» появится автоматически.
-
Если вы собираетесь получить доступ к информации пользователя (если она будет каким-то образом привязана к учетной записи пользователя), то, когда пользователь нажимает кнопку, вы должны проверить учетную запись пользователя, перенаправить учетную запись Facebook, если ее нет, вам нужно открыть всплывающее окно аутентификации, если пользователю удастся войти в системуfacebook, всплывающее окно аутентификации вернет вам код подтверждения. Вы должны обменять код проверки на токен доступа и прикрепить токен доступа к учетной записи пользователя в вашей базе данных. На этапе аутентификации вы должны запросить два специальных разрешения: разрешение на публикацию в потоке и разрешение на автономный доступ. Первый касается ресурса для публикации на стене пользователя, а второй — жизненного цикла токена доступа (если вы не запрашиваете это разрешение, токен доступа будет иметь короткий жизненный цикл, и вам нужно будет повторно проверять подлинность пользователя в facebook снова и снова, мы нехотите этого).
В код:
Когда пользователь нажимает кнопку, вызывается функция ajax, которая проверяет, есть ли токен доступа в учетной записи пользователя. Если есть, верните токен доступа (будьте осторожны, если вы создаете ajax, который возвращает токем доступа на основе идентификатора пользователя, у вас будет очень серьезная проблема с безопасностью), если нет, верните false .
Если возвращаемый код равен false, вызовите функцию, которая открывает всплывающее окно с URL-адресом аутентификации facebook. Во всплывающем URL-адресе обратного вызова аутентификации facebook просто замените проверочный код на токен доступа и сохраните его в базе данных. Вам нужно продолжать прослушивать состояние popup.closed, чтобы узнать, когда процесс завершен, и вызвать другую функцию ajax, которая проверяет, есть ли токен доступа в учетной записи пользователя или нет, если нет, пользователь просто закрыл всплывающее окно.
Если возвращаемый код является токеном доступа, вызовите функцию ajax, которая публикуется на стене пользователя, это очень просто, например:
string facebookurl = "https://graph.facebook.com/me/feed?access_token=32423"
string parameters = "message=aaaaamp;link=bbbb";
WebRequest req = WebRequest.Create(facebookurl);
req.ContentType = "application/x-www-form-urlencoded";
req.Method = "POST";
byte[] bytes = Encoding.ASCII.GetBytes(parameters);
req.ContentLength = bytes.Length;
Stream stream = req.GetRequestStream();
stream.Write(bytes, 0, bytes.Length);
stream.Close();
WebResponse res = req.GetResponse();
StreamReader streamReader = new StreamReader(res.GetResponseStream());
Если вам нужен какой-либо другой фрагмент кода, дайте мне знать.
Комментарии:
1. Фрейтас: Вот что я пытаюсь: когда мы видим видео или ссылку на веб-сайте, появляется маленький значок с надписью «опубликовать в Facebook». Предположим, что вы смотрите видео на FB, есть небольшая иконка, с помощью которой v может отправлять сообщения в FB, twitter. Итак, с чего мне начать в первую очередь. Я разработал asp.net , веб-приложение на C #, которое для начала подключается к FB. Итак, теперь добавим эти разрешения для потока публикации