0

我有一个 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 DB 一次,然后将其发布到参与者的 Facebook 帐户,而不是每次都为每个帐户上传。或者另一种更快地发布照片的方法。

4

1 回答 1

0

是的,你可以,我在 2 天前刚刚测试过它,并且使用 CronJobs 对我来说效果很好。对你来说,这也需要一些时间,因为每次你发布照片时,Facebook 都会再次上传它。

于 2013-03-08T13:42:17.017 回答