0

ユーザーが購読できるFacebookアプリケーションがあります。サブスクライブするために、ユーザーが Facebook アカウント情報を使用してログインできる PHP Web ページを作成しました。ログインすると、ユーザー ID とアクセス トークンが MySQL DB に保存されます。そして、すべてのアクセス トークンを 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 に答える