2009-11-11 104 views
1

我正尝试使用Facebook Developer Toolkit(http://facebooktoolkit.codeplex.com/)从我的.NET应用程序发布用户消息。Facebook开发人员工具包 - 发布消息

我有一个Facebook用户的用户ID。我的问题是,我如何发布消息给这个用户的Facebook流?目前,我写的有以下代码:

ConnectSession session = new ConnectSession(ApplicationKey, SecretKey); 
if (session.IsConnected()) 
{ 
    Api facebook = new Api(session); 
    Facebook.Schema.user user = facebook.Users.GetInfo(userID); 

    facebook.Stream.Publish("Hello"); 
} 

从最好的,我可以告诉,这个代码只发布是在当前登录用户的消息。但我不认为它用userID的流向用户发布消息。如何在具有特定用户标识的流的Facebook用户上发布消息?

谢谢!

回答

0

你可以通过你想要发布到其流的用户的用户ID:

facebook.Stream.Publish("Hello", null, null, null, userID); 

用户必须已授予您的应用程序publish_stream当然前手扩展权限。

+0

对不起,我不能得到y我们的工作答案。我得到一个FacebookException,“当请求使用会话密钥签名时,必须指定一个会话密钥”。任何提示? – 2010-02-03 08:33:28

1

尝试第一次登录...

try 
     { 
      servicio.ApplicationKey = "xxxxxxxxxxxxxxxxxxxxxxxxxx"; 
      servicio.ConnectToFacebook(new List<Enums.ExtendedPermissions>() { Enums.ExtendedPermissions.read_stream, Enums.ExtendedPermissions.publish_stream }); 
      label2.Text = "Conectado:"; 
      label1.Text = servicio.Users.GetInfo().first_name + " " + servicio.Users.GetInfo().last_name; 
      pictureBox1.Image = servicio.Users.GetInfo().picture_small; 
      button2.Text = "Sesión Iniciada"; 
      button2.Enabled = false; 
      checkBox1.Enabled = true; 
      numericUpDown1.Enabled = true; 
      groupBox3.Enabled = true; 
      groupBox4.Enabled = true; 
     }catch (FacebookException fe) 
     { 

      listBox1.Items.Add(fe.Message); 
     } 

,那么你可以发布....这样的..

try 
     { 
      var cancion = "lalalalala"; 
      String cosa = servicio.Stream.Publish(cancion, null, new List<action_link>() 
      { 
       new action_link() 
       { 
       text="Visita SQLeros", 
       href="http://sqleros.com.ar/wps" 

       } 
      }, null, 0); 
      servicio.Stream.AddLike(cosa); //to add like (Y) 
      listBox1.Items.Add(cosa); 

     } 
     catch (FacebookException fe) 
     { 

      listBox1.Items.Add(fe.Message); 
     } 

或这个.. N_N

try 
     { 
      String namePub = servicio.Users.GetInfo().first_name + "ha actualizado su estado"; 
      String cosa = servicio.Stream.Publish(richTextBox1.Text, 
      new attachment() 
      { 
       name = namePub, 
       href = "http://www.facebook.com/apps/application.php?id=136818146334647", 
       caption = "Tú tambien puedes usar Escuchando ahora, es facil y rapido", 
       properties = null, 
       media = new List<attachment_media>() 
       { 
        new attachment_media_image() 
        { 
         src="http://www.rammsdio.com.ar/images/img14781001.gif", 
         href = "http://www.facebook.com/apps/application.php?id=136818146334647" 
        } 
       } 
      }, 
      new List<action_link>() 
      { 
       new action_link() 
       { 
        text="Visita SQLeros", 
        href="http://www.sqleros.com.ar/wps" 
       } 
      },null,0); 
      listBox1.Items.Add("Has actualizado tu estado..."); 
      richTextBox1.Clear(); 
      if (checkBox2.Checked) 
       servicio.Stream.AddLike(cosa); 
     } 
     catch (FacebookException fb) 
     { 

      listBox1.Items.Add(fb.Message); 
     } 

我素不相识希望这对你有用..__