在我的应用中,用户可以发布到他的Facebook feed中,并且我需要知道发布是否成功。在Facebook开发者的页面上,我发现如果帖子成功,该应用会收到post_id
。所以我可以检查这个post_id
;如果不是nil
这意味着用户已经发布到他的源,但我怎样才能得到post_id
?检查Facebook邮件发布是否成功
回答
当存在挂墙对话框时,用户有3个选项。跳过,发布&取消(右上角的小'x')。以下是您可以期待的内容。
下面介绍的这些方法是FBDialogDelegate协议的一部分。
对话框调用dialogCompleteWithUrl:方法,然后它调用dialogDidComplete:方法
SKIP - 当用户点击跳过,传递给dialogCompleteWithUrl的网址:方法是
fbconnect://success
PUBLISH - 当用户点击发布,传递给dialogCompleteWithUrl的网址:方法是
fbconnect://success/?post_id=123456789_12345678912345678
其中“123456789_12345678912345678”是的帖子ID唯一用户的职位(意思是,这POST_ID是只是一个例子)。为了更好地解释post_id,post_id参数由userIdentifier和postIdentifier组成。
post_id=<userIdentifier>_<postIdentifier>
取消 - 当用户点击取消对话框调用dialogCancelWithUrl:方法,那么dialogCancel:方法。在下面的例子中,我没有对这个调用做任何事情。
*由于我不使用post_id来确定是否存在验证帖子成功的事情,下面是如何区分这两个结果的示例。这只是一个例子,以帮助您查看上述结果。随意添加你的翻译*
#pragma mark -
#pragma mark - FBDialogDelegate -
/* ====================================================================*/
/*** Called when the dialog succeeds with a returning url.*/
- (void)dialogCompleteWithUrl:(NSURL *)url {
NSLog(@"Post Complete w/ URL");
NSLog(@"%@",[url absoluteString]);
NSString *theURLString = [url absoluteString];
NSString *successString = @"fbconnect://success?post_id=";
NSString *skipString = @"fbconnect://success";
NSString *subStringURL = nil;
if ([theURLString length] > [successString length]) {
subStringURL = [[url absoluteString] substringToIndex:28];
NSLog(@"%@",subStringURL);
}
if ([subStringURL isEqualToString:successString])
{
UIAlertView *successAlert = [[UIAlertView alloc] initWithTitle:@"Wall Post Successful" message:@"" delegate:nil cancelButtonTitle:@"Dismiss" otherButtonTitles:nil];
[successAlert show];
[successAlert release];
}
if ([theURLString isEqualToString:skipString]) {
UIAlertView *successAlert = [[UIAlertView alloc] initWithTitle:@"Wall Post Skipped" message:@"" delegate:nil cancelButtonTitle:@"Dismiss" otherButtonTitles:nil];
[successAlert show];
[successAlert release];
}
}
/*** Called when the dialog succeeds and is about to be dismissed.*/
- (void)dialogDidComplete:(FBDialog *)dialog {
NSLog(@"Post Complete");
}
/*** Called when the dialog is cancelled and is about to be dismissed. */
- (void)dialogDidNotComplete:(FBDialog *)dialog {
NSLog(@"Post Cancelled");
}
/*** Called when the dialog get canceled by the user.*/
- (void)dialogDidNotCompleteWithUrl:(NSURL *)url {
NSLog(@"Post Cancelled w/ URL");
NSLog(@"%@",[url absoluteString]);
}
我用简单的东西一点点:
if ([url query] != nil) { // eg. post_id=xxxxxxx
// success
}
你在哪里用过它? – Saad 2012-05-31 07:58:08
内部dialogCompleteWithUrl – SmallChess 2012-09-04 10:03:27
- 1. 检查发送邮件是否成功/不成功在CakePHP中?
- 2. 检查Facebook发布是否成功从Android应用程序
- 3. 检查邮件是否在bash中成功发送
- 4. 检查邮件是否成功发送在VB.NET与SMTPClient
- 5. 如何检查邮件是否已成功发送
- 6. 如何检查Siebel是否已成功发送电子邮件?
- 7. 检查发布方法是否成功使用Mosquittopp
- 8. 检查EndExecuteNonQuery是否成功
- 9. 检查sp_send_dbmail是否成功
- 10. 检查INSERT是否成功
- 11. 检查是否sendsynchronousrequest成功
- 12. 检查startScan是否成功
- 13. iOS:如何检测电子邮件是否已成功发送?
- 14. RabbitMQ:检查邮件是否已发送?
- 15. Laravel 5 - 检查是否发送邮件
- 16. Java邮件。如何检查登录是否成功?
- 17. 检查文件是否成功上传
- 18. 如何检查用户是否成功完成了Facebook共享
- 19. 检查是否张贴进给Facebook成功地与否(解决)
- 20. 邮件表单发送成功消息,并检查是否输入!空
- 21. 如何检查Facebook API是否成功查询?
- 22. 检查`isql`查询是否成功
- 23. 如何检查php邮件功能是否成功,然后运行javascript代码?
- 24. 检查Facebook发布存在
- 25. 是否有Facebook开发邮件列表
- 26. 如何检查.Post是否已在Facebook C#sdk中成功发送?
- 27. 检查用户是否发布在Facebook和Twitter上
- 28. Facebook Graph API/FQL来检查用户是否喜欢发布
- 29. 检查更新推送是否成功
- 30. 如何检查oledbcommand是否成功?
这太复杂了。 Madmax的回答是正确的。 – SmallChess 2012-09-04 10:03:49