С# MS-CRM 2013 онлайн-плагин для публикации событий на странице Facebook

Мое решение может быть технически невозможным. Тем не менее, я хотел бы услышать вашу точку зрения. Мы должны создать рабочий процесс/плагин MS-CRM 2013, который будет публиковать события из CRM на определенной странице facebook.

  1. Отдельное приложение невозможно.
  2. Проблема в том, что для публикации мне нужен токен доступа к странице.
  3. Чтобы получить токен доступа к странице, мне нужен токен доступа пользователя.
  4. Чтобы получить токен доступа пользователя, мне нужно пройти по пути redirect_uri, где я получу код в строке URL, но MS-CRM 2013, как вы, возможно, знаете, не разрешает «код» в качестве строки URL, он откажется перенаправлять себя на мой обратный вызов страница, это моя проблема.

Я открыт для предложений. Я использовал Facebook SDK и простой веб-запрос. Это дает мне токен доступа к приложению.

dynamic result = obj.Get("oauth/access_token", new
                {
                    client_id = this.fbAppID,
                    client_secret = this.fbAppSecret,
                    grant_type = "client_credentials",
                    scope = "publish_actions,manage_pages,create_event,read_stream,publish_stream,email,read_friendlists,read_insights,read_requests,manage_friendlists,user_about_me,user_activities,user_birthday,user_groups,friends_groups"
                });

Теперь, как мне получить токен доступа пользователя из MS-CRM 2013 онлайн. Если кто-то сделал это, пожалуйста, дайте мне знать, если вам нужны дополнительные разъяснения, я буду рад предоставить больше кода и т. д.


person Sudeep    schedule 27.03.2014    source источник


Ответы (1)


Вам нужно разделить свою логику:

  1. Создайте комбинацию HTML/JavaScript WebResource, которая позволит пользователю связать свою запись CRM SystemUser с Facebook. Создайте код, аналогичный приведенному ниже, — ему потребуется дополнительный вспомогательный код, чтобы проверить, подключен ли пользователь уже к Facebook и т. д.

FB.login(function (response) { if (response.authResponse) { // user sucessfully logged in var accessToken = response.authResponse.accessToken; //TODO: Add logic to save accessToken to CRM SystemUser record. } }, { scope: 'email,publish_stream,email,rsvp_event,read_stream,user_likes,user_birthday' });

  1. В вашем плагине извлеките токен доступа FB, сохраненный на шаге 1, из записи CRM SystemUser и используйте его для создания экземпляра объекта подключения Facebook:

var obj = new FacebookClient(accessToken);

Это куча работы, которую нужно сделать, чтобы получить токен доступа. И ни одно из руководств не собирается четко объяснять смешивание чистого HTML/JS для извлечения токенов, но выполнение вызовов из C#, поскольку это довольно необычное требование.

person Nicknow    schedule 27.03.2014
comment
Это ответ, он работает отлично. Спасибо, что так точно ответили - person Sudeep; 28.03.2014