web-dev-qa-db-ja.com

FBSDKShareDialogはFacebookアプリがインストールされていないと写真を共有しませんIOS

Facebook SDK 4.0を使用しています https://developers.facebook.com/docs/sharing/ios#share_dialogFBSDKShareDialogを使用して写真を共有しています。ユーザーが写真を共有している場合Facebookアプリをインストールしましたが、ユーザーがFBアプリをインストールしていない場合は失敗します。 「Facebookアプリがインストールされていない場合は、自動的にWebベースのダイアログにフォールバックします。」 Idk何が問題なのか、FBSDK 4.0を使用して写真を共有するのを手伝ってください。

私のコードは

FBSDKSharePhoto *photo = [[FBSDKSharePhoto alloc] init];
photo.image = self.capturedImageView.image;
photo.userGenerated = YES;
FBSDKSharePhotoContent *content = [[FBSDKSharePhotoContent alloc] init];
content.photos = @[photo];
[FBSDKShareDialog showFromViewController:self
                             withContent:content
                                delegate:self];

これはエラー報告です

enter image description here

エラー: "com.facebook.sdk:FBSDKErrorArgumentNameKey = shareContent、com.facebook.sdk:FBSDKErrorDeveloperMessageKey =フィード共有ダイアログはFBSDKShareLinkContentをサポートしています。"

16
Moaz Saeed

FBSDKShareDialogは、画像またはURLを投稿するためにFBSDKShareLinkContentのみをサポートしています。したがって、共有ダイアログを使用するには、FBSDKShareLinkContentを使用する必要があります。

enter image description here

次のように使用できます。

FBSDKShareLinkContent *content = [[FBSDKShareLinkContent alloc] init];
    content.imageURL = [NSURL URLWithString:@"http://upload.wikimedia.org/wikipedia/commons/3/36/Hopetoun_falls.jpg"];
    [FBSDKShareDialog showFromViewController:self
                                 withContent:content
                                    delegate:self];

リンクを共有したい場合は、content.contentURL

参照: https://developers.facebook.com/docs/sharing/ios#share_dialog

FBSDKSharePhotoを使用している場合は、ネイティブFacebook for iOSアプリをインストールする必要があります。

https://developers.facebook.com/docs/sharing/ios#photos を参照してください

17
Dheeraj Singh

また、ドキュメントがフォールバックメカニズムを提供していると言っているのと同じ問題がありましたが、このケースには当てはまらないようです。

組み込みの共有フォールバック

以前のバージョンのSDK for iOSでは、アプリは共有ダイアログを開く前に、ネイティブでインストールされたFacebookアプリを確認する必要がありました。ユーザーがアプリをインストールしていない場合は、フォールバックダイアログを呼び出すための独自のコードを提供する必要がありました。

これで、SDKはネイティブFacebookアプリを自動的にチェックします。インストールされていない場合、SDKはユーザーをデフォルトのブラウザーに切り替え、フィードダイアログを開きます。誰かがOpen Graphストーリーを共有したい場合、SDKはWeb共有ダイアログを開きます。

2
ph1lb4

最初にiOSデバイスのFacebookアカウントを設定してから、次のコードを使用して機能します。

FBSDKSharePhoto *photo = [[FBSDKSharePhoto alloc] init];

photo.image = self.capturedImageView.image;

photo.userGenerated = YES;

FBSDKSharePhotoContent *content = [[FBSDKSharePhotoContent alloc] init];

content.photos = @[photo];

[FBSDKShareDialog showFromViewController:self
                             withContent:content
                                delegate:self];
0
Vinod N