使用facebook API在我的网站上邀请Facebook好友

时间:2012-06-20 14:40:59

标签: asp.net c#-4.0 facebook-graph-api

我正在使用Facebook API在C#中开发一个网站并登录用户的好友列表。我在Datalist中将此列表与复选框,朋友图片,姓名和用户ID绑定。

当我查看一些复选框并单击按钮时,我想向已检查的朋友发送某种邀请。我想通过私人消息,通知或任何其他解决方案发送邀请(但在用户的墙上)。这可能吗?

我已经检查了Stackoverflow中已有的所有帖子。 并检查了这一个http://www.fbrell.com/xfbml/fb:server-fbml-multi-friend-selector

2 个答案:

答案 0 :(得分:1)

您要找的是"App-generated Requests"。这些是从您的应用程序内部发送的请求,无需用户查看requests dialog.

或对其进行操作

以下代码摘自Facebook文档 - https://developers.facebook.com/docs/channels/#requests

<?php 

  $app_id = YOUR_APP_ID;
  $app_secret = YOUR_APP_SECRET;

  $token_url = "https://graph.facebook.com/oauth/access_token?" .
    "client_id=" . $app_id .
    "&client_secret=" . $app_secret .
    "&grant_type=client_credentials";

  $app_access_token = file_get_contents($token_url);

  $user_id = THE_CURRENT_USER_ID;

  $apprequest_url ="https://graph.facebook.com/" .
    $user_id .
    "/apprequests?message='INSERT_UT8_STRING_MSG'" . 
    "&data='INSERT_STRING_DATA'&"  .   
    $app_access_token . "&method=post";

  $result = file_get_contents($apprequest_url);
  echo("App Request sent?", $result);
?>
  

发送后,用户收到的新请求将作为计数器显示   在您的应用程序的书签上,它也会递增计数器   到适当的仪表板。

代码在PHP中,但它使用的是非常通用的file_get_contents()方法。您可以将此逻辑与任何能够发出HTTP请求的语言一起使用。

答案 1 :(得分:0)

此代码将发布在您朋友的墙上,无论您想发布什么:

              for (Int32 i = 1; i < DLFbFriend.Items.Count; i++){

                CheckBox Chkbox =(CheckBox)DLFbFriend.Items[i].FindControl("chkUserID");
                if (Chkbox.Checked)
                {
                    HiddenField hdfUserId = (HiddenField)DLFbFriend.Items[i].FindControl("hdfUserID");
                    string d = hdfUserId.Value;//friend's facebook generated id,whom you want to invite
                    String link = "what ever you want to post";
                    string url1 = "https://graph.facebook.com/" + d + "/feed?access_token=" + Request.QueryString["access_token"] + "&link=" + link + "&from=" + Session["Pinny_USER"].ToString().Split('~')[0] + "&name=Register with Pinny&message=Your friend invites you&picture=http://168.144.124.15/images/logoPinny.jpeg";
                    HttpWebRequest request1 = (HttpWebRequest)WebRequest.Create(url1);
                    request1.Method = "POST";
                    // execute the request
                    HttpWebResponse response1 = (HttpWebResponse)request1.GetResponse();

                    // we will read data via the response stream
                    System.IO.Stream ReceiveStream1 = response1.GetResponseStream();
                    StreamReader readStream1 = new StreamReader(ReceiveStream1);
                    string json1 = readStream1.ReadToEnd();
                    countinvited += 1;
                }
            }