ユーザーが購読できる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 アカウントに投稿できるかどうかを尋ねています。または、写真をより速く公開する別の方法。