在我的應用中,用戶可以發佈到他的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. 如何檢查電子郵件是否已成功發送?
- 4. 如何檢查郵件是否已成功發送
- 5. 如何檢查Siebel是否已成功發送電子郵件?
- 6. 檢查郵件是否在bash中成功發送
- 7. 檢查是否sendsynchronousrequest成功
- 8. 檢查EndExecuteNonQuery是否成功
- 9. Laravel 5 - 檢查是否發送郵件
- 10. RabbitMQ:檢查郵件是否已發送?
- 11. 如何檢查用戶是否成功完成了Facebook共享
- 12. 郵件表單發送成功消息,並檢查是否輸入!空
- 13. 是否有Facebook開發郵件列表
- 14. 檢查用戶是否發佈在Facebook和Twitter上
- 15. 用於瞭解發佈郵件消息是否成功的模式
- 16. 檢查更新是否成功
- 17. 檢查INSERT INTO語句是否成功
- 18. 檢查貝寶付款是否成功
- 19. 如何檢查mysqli_connect是否成功?
- 20. 檢查兩個antcalls是否成功
- 21. 檢查http狀態是否成功
- 22. 檢查XXTEA是否解密成功
- 23. 如何檢查WinActivate是否成功?
- 24. 檢查exec()是否成功運行
- 25. 檢查SQL INSERT是否成功
- 26. 檢查php mysql更新是否成功
- 27. 如何檢查oledbcommand是否成功?
- 28. 如何檢查IO.popen是否成功?
- 29. Php檢查shell_exec命令是否成功
- 30. 檢查推送是否成功 - angularfire2
這太複雜了。 Madmax的回答是正確的。 – SmallChess 2012-09-04 10:03:49