14

アプリの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の両方に既知のバグがあることがわかりました。これは画像のアップロードにも当てはまりますか?誰かがこのバグを回避するための解決策を持っているなら、助けてください。

4

4 に答える 4

7

APIのバグのため、これは現在(2012年6月)不可能です。https ://developers.facebook.com/bugs/206254392780441に詳細があります。

/feed回避策の1つは、ページの接続に投稿し、フィードストーリーに画像を添付することです。その画像は、適切な写真のアップロードほど大きくは表示されませんが、正常に機能するはずです。

このバグは/PAGE_ID/photos、ユーザーを使用してページの接続に投稿すると、代わりにユーザーの接続にaccess_token写真が誤ってアップロードされることを意味します。/photos

ページの/photos接続への投稿は、ページのaccess_token;を使用すると期待どおりに機能します。写真は、ページの写真ページ、ページのタイムラインに表示され、ページ自体に帰属します(つまり、ページの「から」)

アプリが特にコンテンツをページに追加するためのものであり、サーバー側のコンポーネントがある場合、ユーザーからページに写真を取得するための別の回避策は、ユーザーが独自のインターフェイスを介して写真を提供するようにすることです(つまり、アップロードします)。ユーザーのデバイスからサーバーへ)、ページ管理者の1人を使用してページaccess_tokens取得し、その方法でアップロードします。access_token

于 2012-06-10T20:08:35.033 に答える
0

写真を投稿するのに間違った議論をしていると思います

@"url"代わりに使用する必要があります@"picture"

これについてはよくわかりませんが、うまくいく可能性があります。

私はjavaScriptで同じ問題を抱えていましたが、それは解決されました。

私の問題を参照するためにここを見てください

于 2012-06-15T18:44:41.843 に答える
0

ダイアログを使用する代わりに、ユーザーに許可を与えるように依頼できます- publish_stream
(ダイアログ コンポーネントにバグがあるため、それ以外の場合は必要ありません)

次に、ページウォールに投稿できます(ページ設定でページが許可されていると仮定します)。

Graph api explorerを使用してみることができます。拡張アクセス許可タブで上記のアクセス許可を付与することで、ページ ID とテストを変更できます。


もう 1 つ覚えておく必要があるのは、picture パラメータでは画像データを送信できないことです。画像へのリンクを提供する必要があります。

于 2012-06-07T15:23:18.303 に答える
0

私は単に例外エラーに対処しようとします。ファンページのニュースフィードに投稿することができます。認証が必要になるため、ファン ページ自体として投稿することはできません (したがって、アクセス トークンの要件.. ファン ページとして投稿するには、そのユーザーとしてログインする必要があります)。@Igyはすでにこれに対処しています。

ただし、イメージ ピッカーを使用してイメージを取得する場所のコードはありません。取得している例外は、NSData オブジェクトではなく UIImage オブジェクトの長さをチェックしようとしているためです (これは Facebook が必要とするものです)。画像をピッカーからデータに変換するには、以下のスニペットを使用します (img 変数を UIImage に置き換えます)。

NSData *imgData = UIImageJPEGRepresentation(img, 0);

// Now call to length by facebook SDK will work and the exception will not fail
NSLog(@"Size of Image(bytes):%d",[imgData length]);
于 2012-06-12T17:19:16.647 に答える