向应用程序用户发送通知/请求(Facebook - C#)

时间:2012-11-27 22:29:48

标签: c# facebook facebook-requests

标题可能无法描述我真正想要的内容,但我希望这不是一个重复的问题,因为我在搜索中找不到相关的答案。

我正在为自己的魔兽世界公会开发一个Facebook raid管理器应用程序,我想要它做的是:

  • 当官员创建raid时,向所有应用程序用户发送通知(或应用程序请求),无论他们是否是该官员的朋友。
  • 此请求可以是用户对用户或应用程序到用户的请求,唯一重要的是它必须在Facebook端触发通知。

同样,要明确的是,我不是要向非应用程序用户发送应用程序请求。我只想要一种向用户事件触发的应用程序用户发送请求的方法。

应用程序已经拥有“Facebook群组”授权,这意味着所有应用用户都是特定Facebook群组(不是网页)的成员。

这可以通过Facebook对话吗?

1 个答案:

答案 0 :(得分:1)

以下是使用C#SDK发送应用请求的一些粗略代码:

private string getAppAccessToken()
{
    string facebookAppId = ConfigurationProvider.GetSetting("FacebookAppId");
    string facebookAppSecret = ConfigurationProvider.GetSetting("FacebookAppSecret");
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(
        String.Format("https://graph.facebook.com/oauth/access_token?grant_type=client_credentials&client_id={0}&client_secret={1}",
        facebookAppId, facebookAppSecret));
    HttpWebResponse response = (HttpWebResponse)request.GetResponse();
    var responseStream = new StreamReader(response.GetResponseStream());
    var responseString = responseStream.ReadToEnd();

    if (responseString.Contains("access_token="))
    {
        return responseString.Replace("access_token=", string.Empty);
    }

    return "";
}

private void postRequest(string id, string message)
{
    FacebookClient app = new FacebookClient(this.getAppAccessToken());
    dynamic parameters = new ExpandoObject();
    parameters.message = message;
    parameters.title = "Please use our app";
    dynamic myId = app.Post(id + "/apprequests", parameters);
}

通知应显示在App Center / Requests下。

希望这有帮助。