2

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

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

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

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

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

这可以通过 Facebook 对话实现吗?

4

1 回答 1

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 下。

希望这可以帮助。

于 2012-12-13T22:19:14.950 回答