将图像上传到C#中的多个Facebook帐户

时间:2013-03-08 07:33:46

标签: c# facebook facebook-graph-api facebook-c#-sdk access-token

我有一个Facebook应用程序,用户可以在其中订阅。为了订阅,我创建了一个PHP网页,用户可以使用他的Facebook帐户信息登录,当他登录时我将用户ID和访问令牌存储到我的MySQL数据库。然后我得到将所有访问令牌作为XML文件发送到我的应用程序。

现在,我想将状态和照片发布到订阅的用户帐户。但是当我想将照片上传到帐户时,我必须将照片上传到每个发布操作中的每个帐户,这种方法没用。

我的发布代码如下:

public static bool PostImage(string ImageDesc, string ImagePath)
    {
        try
        {
            string accesstoken = "";

            if (ImagePath.Length < 0)
                return false;

            int progressMaxValue = Controller.participants.Descendants("participant").Count();
            int increment = 100 / progressMaxValue;

            PostImageCPanel.progressBar1.Value = 0;
            foreach (XElement xe in Controller.participants.Descendants("participant"))
            {
                try
                {
                    accesstoken = xe.Attribute("access_token").Value;

                    FacebookClient client = new FacebookClient(accesstoken); 
                    var imageStream = File.OpenRead(ImagePath);


                    dynamic res = client.Post("/me/photos", new
                    {
                        message = (ImageDesc"),
                        file = new FacebookMediaStream
                        {
                            ContentType = "image/jpg",
                            FileName = Path.GetFileName(ImagePath)
                        }.SetValue(imageStream)

                    });
                    PostImageCPanel.progressBar1.Value += increment;
                }
                catch (FacebookOAuthException ex)
                {
                    MessageBox.Show(ex);
                }                     
            }

所以,我问我是否可以将照片上传到MySQL数据库一次,然后将其发布到参与者Facebook帐户,而不是每次为每个帐户上传照片。 或者更快地发布照片的另一种方法。

1 个答案:

答案 0 :(得分:0)

是的,你可以,我刚刚在2天前对它进行了测试,并且使用CronJobs可以正常使用它。 对你而言,这也需要一些时间,因为每次你发布照片时,facebook都会再次上传。