我正在尝试将新的Facebook SDK集成到我正在处理的应用中,出于某种原因,每当我尝试共享链接时,共享屏幕都不会出现。如果没有安装Facebook应用程序,我会被踢到Facebook应用程序(或网络应用程序),但我从来没有选择共享我试图让用户发布的链接。
我几乎跟随Facebook开发者网站上的示例到T,但作为参考,这是我的代码:
- (IBAction)shareToFacebook:(id)sender {
NSLog(@"Share to Facebook");
FBSDKShareLinkContent *content = [FBSDKShareLinkContent new];
content.contentURL = [NSURL URLWithString:@"http://google.com"];
content.contentTitle = @"Test Post!";
content.contentDescription = @"Content Description;
FBSDKShareDialog *shareDialog = [FBSDKShareDialog new];
[shareDialog setMode:FBSDKShareDialogModeAutomatic];
[shareDialog setShareContent:content];
[shareDialog setFromViewController:self];
[shareDialog show];
// [FBSDKShareDialog showFromViewController:self withContent:content delegate:nil];
}
正如您在上面所看到的,我尝试使用Facebook在其文档中使用的便捷方法,以及更加冗长,但两者都产生相同的结果(打开Facebook应用程序但不向用户提供选项)分享任何内容)。任何帮助都将非常感谢!
答案 0 :(得分:2)
添加到您的代码
[shareDialog setDelegate:self]
<FBSDKSharingDelegate>
到您班级
FBSDKSharing
代码
#pragma mark - FBSDKSharingDelegate
- (void)sharer:(id<FBSDKSharing>)sharer didCompleteWithResults :(NSDictionary *)results {
NSLog(@"FB: SHARE RESULTS=%@\n",[results debugDescription]);
}
- (void)sharer:(id<FBSDKSharing>)sharer didFailWithError:(NSError *)error {
NSLog(@"FB: ERROR=%@\n",[error debugDescription]);
}
- (void)sharerDidCancel:(id<FBSDKSharing>)sharer {
NSLog(@"FB: CANCELED SHARER=%@\n",[sharer debugDescription]);
}
在didFailWithError
中设置断点,您可以看到许多有趣的潜在错误描述。
答案 1 :(得分:1)
此示例用于使用swift
从应用程序到Facebook的共享图像 func shareWithFacebook(){
let share : FBSDKShareLinkContent = FBSDKShareLinkContent()
share.imageURL = NSURL(string: "image url")
share.contentTitle = "content description "
share.contentURL = NSURL(string: "https://www.example.com")
let dialog : FBSDKShareDialog = FBSDKShareDialog()
dialog.fromViewController = self
dialog.shareContent = share
let facebookURL = NSURL(string: "fbauth2://app")
if(UIApplication.sharedApplication().canOpenURL(facebookURL!)){
dialog.mode = FBSDKShareDialogMode.Native
}else{
dialog.mode = FBSDKShareDialogMode.FeedWeb
}
dialog.show()
}
别忘了添加facebook框架
答案 2 :(得分:0)
正如FBSDKShareDialogMode.h
中所述:
@discussion自动模式将逐步检查不同模式的可用性并打开最多 适用于对话框的适当模式。
所以只需选择另一个Share Dialog Mode。
答案 3 :(得分:0)
它实际上是我的info.plist中的一个小错字。只是向其他人发现类似错误,检查他们在那里设置的所有信息,并确保它们都正确无误。
答案 4 :(得分:0)
我只在一部iPhone上遇到此问题,而在其他iPhone中它运行良好。事实证明,该设备中的Facebook应用程序已经过时,因此FBSDKShareDialog没有显示出来。一旦Facebook应用程序更新到最新版本,FBSDKShareDialog就开始正常工作了。
答案 5 :(得分:0)
尝试使用此模式:
$(".btn-test-1").click(function(){
var id_val = $(this).attr('id');
//with the use of ajax
$.ajax({
type: "POST",
url: "somefile.php",
data: {id:id_val },
success: function(result){
$("#outputarea").load("somefile.php");
}
})
});
答案 6 :(得分:0)
通过Native iOS应用在Facebook上分享。 我们需要在应用程序中安装更新的FB SDK。
我用Pods来安装。 链接以将pod设置到Mac:https://cocoapods.org
在podfile中写入pod文件名:
pod 'FBSDKCoreKit'
pod 'FBSDKLoginKit'
pod 'FBSDKShareKit'
或
手动安装请遵循:https://developers.facebook.com/docs/sharing/ios
成功安装FB SDK后。
在按钮操作上编写代码:
FBSDKShareLinkContent *content = [[FBSDKShareLinkContent alloc] init];
content.contentURL = [NSURL URLWithString:@"https://AppLink"];
content.quote = @"Sample description of app";
[FBSDKShareDialog showFromViewController:self
withContent:content
delegate:nil];
它会自动处理Native或Web(如果没有安装。)