アプリのFacebookファンページとユーザーウォールにも写真を投稿しようとしています。ユーザーのウォールに写真を投稿することに成功しましたが、ファンページのウォールに投稿できませんでした。(ユーザーは必ずしも管理者やページの所有者ではなく、通常のユーザーだけです。ファンページには誰でも投稿できるオプションがあるため、ユーザーが最初にページを高く評価する必要はありません。そうですか?)
しばらくグーグルした後、私はこの答えを見つけました。それによると、ファンページのaccess_tokenとalbum_idが必要です。しかし、私はそれらを取得する方法についての手がかりを見つけることができません。これまで私はこのコードを試しました:
if ([appDelegate.facebook isSessionValid])
{
NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
resultImage, @"picture",
nil];
[appDelegate.facebook requestWithGraphPath:@"me/photos"
andParams:params
andHttpMethod:@"POST"
andDelegate:self]; // to post on users wall, works fine
NSString *path = [NSString stringWithFormat:@"my/accounts /fan_page_id?fields=access_toke/photos"];
[appDelegate.facebook setAccessToken: FACEBOOK_ACCESS_TOKEN];
[appDelegate.facebook requestWithGraphPath:path andParams:params andHttpMethod:@"POST" andDelegate:self]; // to post on fan page wall, this doesn't work
}
誰かがこれを手伝ってくれますか?ここで何が欠けていますか?前もって感謝します。
アップデート
この回答によると、通常のユーザーはiOSアプリからファンページの壁に写真を投稿することはできませんが、写真を共有することはできます。さて、私の質問は、ユーザーのウォールに写真を投稿し、同時にファンページのウォールで共有するにはどうすればよいですか?出来ますか?ファンページの壁で写真を共有するにはどうすればよいですか?
更新2
この回答と質問は、通常のユーザーがニュースフィードを介してファンページの壁に投稿できることを示しているので、次のようにコードを変更しました。
if ([appDelegate.facebook isSessionValid]) {
NSMutableDictionary *page_params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
@"fan_page_id", @"to",
@"Test", @"name",
@"Test", @"caption",
resultImage, @"picture",
nil];
[appDelegate.facebook dialog:@"feed"
andParams:page_params
andDelegate:self];
}
しかし、私はこのばかげたエラーメッセージを受け取り続け、アプリがクラッシュします:
-[UIImage length]: unrecognized selector sent to instance 0x24d110
2012-06-06 19:59:03.114 app_name[2739:707] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIImage length]: unrecognized selector sent to instance 0x24d110'
私は今どうすればいい?
長い間待った後のこの時点で、私の頭に浮かぶ疑問は、これも可能かということです。もしそうなら、どうすればこのタスクを実行できますか?そうでない場合は、代替手段は何ですか?助けてください。
アップデート3
ファンページの壁にダイアログを投稿するためのiOSSDKとJavaScriptSDKの両方に既知のバグがあることがわかりました。これは画像のアップロードにも当てはまりますか?誰かがこのバグを回避するための解決策を持っているなら、助けてください。