C#MS-CRM 2013在线插件将在Facebook页面上发布活动

时间:2014-03-27 09:46:25

标签: dynamics-crm-2011 dynamics-crm-2013

我的解决方案在技术上可能不太可行。但我想要你的观点 我们必须创建一个工作流程/插件MS-CRM 2013,它将从CRM发布事件到特定的Facebook页面。

  1. 无法单独申请。
  2. 问题是,要发布我需要页面访问令牌。
  3. 要获取页面访问令牌,我需要用户访问令牌。
  4. 要获取用户访问令牌,我需要遵循redirect_uri路径,我将获取URL字符串中的代码,但您可能知道MS-CRM 2013不允许"代码"作为url字符串,它将拒绝将自身重定向到我的回调页面,这是我的问题。
  5. 我对使用Facebook SDK和简单webrequest的建议持开放态度。这给了我App app Token

    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在线获取用户访问令牌。 如果有人这样做,请告诉我,如果您需要更多说明,我很乐意提供更多代码等。

1 个答案:

答案 0 :(得分:1)

你需要分开你的逻辑:

  1. 创建一个HTML / JavaScript WebResource组合,允许用户将其CRM SystemUser记录链接到Facebook。构建类似于下面的代码 - 它需要额外的支持代码来检查用户是否已经连接到Facebook等。
  2. 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. 在您的插件中,从CRM SystemUser记录中检索步骤1中保存的FB访问令牌,并使用它来实例化您的Facebook连接对象:
    2. var obj = new FacebookClient(accessToken);

      这是获取访问令牌的一系列工作。并且没有一个指南能够清楚地解释混合纯HTML / JS用于令牌检索,而是从C#进行调用,因为这是一个相当不寻常的要求。