Iphone 如何向朋友发帖';时间轴
我正试图贴到朋友的墙上,但没有成功 错误: 错误Domain=com.facebook.sdk Code=5“无法执行该操作 已完成。(com.facebook.sdk错误5。)“UserInfo=0xa799fa0 {com.facebook.sdk:HTTPStatusCode=403, sdk:ParsedJSONResponseKey=( { 正文={ 错误={ 代码=200; message=“(#200)此应用程序已禁用向其他用户发布提要故事”; 类型=OAutheException; }; }; 代码=403; }) LoginViewController中的登录过程:Iphone 如何向朋友发帖';时间轴,iphone,ios,facebook,facebook-graph-api,Iphone,Ios,Facebook,Facebook Graph Api,我正试图贴到朋友的墙上,但没有成功 错误: 错误Domain=com.facebook.sdk Code=5“无法执行该操作 已完成。(com.facebook.sdk错误5。)“UserInfo=0xa799fa0 {com.facebook.sdk:HTTPStatusCode=403, sdk:ParsedJSONResponseKey=( { 正文={ 错误={ 代码=200; message=“(#200)此应用程序已禁用向其他用户发布提要故事”; 类型=OAutheException
-(IBAction)facebookButtonPressed:(id)sender {
[facebook authorize:[self permissions]];
}
- (NSArray *)permissions {
static NSArray *pms;
if (pms == nil) {
pms = [[NSArray alloc] initWithObjects: @"user_photos", @"user_location", @"user_birthday",
@"friends_birthday", @"friends_location", @"friends_photos", @"user_relationships",
@"publish_actions", @"publish_stream", nil];
}
return pms;
}
- (void)postToFriendWall:(NSString *)userId {
facebook = [[Facebook alloc]initWithAppId:APP_ID andDelegate:self];
if (![facebook isSessionValid]) {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[facebook setAccessToken:[defaults objectForKey:FB_ACCESS_TOKEN]];
[facebook setExpirationDate:[defaults objectForKey:FB_EXPIRATION_DATE]];
}
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *defaultWish = [defaults objectForKey:[NSString stringWithFormat:@"%@%@", DEFAULT_WISH, [defaults objectForKey:FB_USER_ID]]];
NSString *defaultImage = [defaults objectForKey:[NSString stringWithFormat:@"%@%@", DEFAULT_IMAGE, [defaults objectForKey:FB_USER_ID]]];
if (defaultImage == nil && defaultWish == nil) {
[self showAlertViewWithTitle:@"Post wasn't sent" message:@""];
return;
}
NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:nil];
[params setObject:defaultWish forKey:@"message"];
if (![defaultImage isEqualToString:@"none"])
[params setObject:[UIImage imageNamed:defaultImage] forKey:@"picture"];
[facebook requestWithGraphPath:[NSString stringWithFormat:@"%@/feed", userId] andParams:params andHttpMethod:@"POST" andDelegate:self];
}
- (void)request:(FBRequest *)request didLoad:(id)result {
}
- (void)fbDidLogin {
}
- (void)fbDidExtendToken:(NSString*)accessToken expiresAt:(NSDate*)expiresAt {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:[facebook accessToken] forKey:FB_ACCESS_TOKEN];
[defaults setObject:[facebook expirationDate] forKey:FB_EXPIRATION_DATE];
[defaults synchronize];
}
- (void)request:(FBRequest *)request didFailWithError:(NSError *)error {
NSString *errorDescription = [error description];
}
- (void)request:(FBRequest *)request didReceiveResponse:(NSURLResponse *)response {
}
- (void)fbDidNotLogin:(BOOL)cancelled{
}
- (void)fbDidLogout{
}
- (void)fbSessionInvalidated{
}
- (void)fbDialogLogin:(NSString *)token expirationDate:(NSDate *)expirationDate {
}
- (void)fbDialogNotLogin:(BOOL)cancelled {
}
在PostViewController中发布到朋友时间线的代码:
-(IBAction)facebookButtonPressed:(id)sender {
[facebook authorize:[self permissions]];
}
- (NSArray *)permissions {
static NSArray *pms;
if (pms == nil) {
pms = [[NSArray alloc] initWithObjects: @"user_photos", @"user_location", @"user_birthday",
@"friends_birthday", @"friends_location", @"friends_photos", @"user_relationships",
@"publish_actions", @"publish_stream", nil];
}
return pms;
}
- (void)postToFriendWall:(NSString *)userId {
facebook = [[Facebook alloc]initWithAppId:APP_ID andDelegate:self];
if (![facebook isSessionValid]) {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[facebook setAccessToken:[defaults objectForKey:FB_ACCESS_TOKEN]];
[facebook setExpirationDate:[defaults objectForKey:FB_EXPIRATION_DATE]];
}
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *defaultWish = [defaults objectForKey:[NSString stringWithFormat:@"%@%@", DEFAULT_WISH, [defaults objectForKey:FB_USER_ID]]];
NSString *defaultImage = [defaults objectForKey:[NSString stringWithFormat:@"%@%@", DEFAULT_IMAGE, [defaults objectForKey:FB_USER_ID]]];
if (defaultImage == nil && defaultWish == nil) {
[self showAlertViewWithTitle:@"Post wasn't sent" message:@""];
return;
}
NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:nil];
[params setObject:defaultWish forKey:@"message"];
if (![defaultImage isEqualToString:@"none"])
[params setObject:[UIImage imageNamed:defaultImage] forKey:@"picture"];
[facebook requestWithGraphPath:[NSString stringWithFormat:@"%@/feed", userId] andParams:params andHttpMethod:@"POST" andDelegate:self];
}
- (void)request:(FBRequest *)request didLoad:(id)result {
}
- (void)fbDidLogin {
}
- (void)fbDidExtendToken:(NSString*)accessToken expiresAt:(NSDate*)expiresAt {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:[facebook accessToken] forKey:FB_ACCESS_TOKEN];
[defaults setObject:[facebook expirationDate] forKey:FB_EXPIRATION_DATE];
[defaults synchronize];
}
- (void)request:(FBRequest *)request didFailWithError:(NSError *)error {
NSString *errorDescription = [error description];
}
- (void)request:(FBRequest *)request didReceiveResponse:(NSURLResponse *)response {
}
- (void)fbDidNotLogin:(BOOL)cancelled{
}
- (void)fbDidLogout{
}
- (void)fbSessionInvalidated{
}
- (void)fbDialogLogin:(NSString *)token expirationDate:(NSDate *)expirationDate {
}
- (void)fbDialogNotLogin:(BOOL)cancelled {
}
截至2013年2月6日,您无法使用该图表方法发布到朋友的时间线 请看这里:
查找,或作为替代方法。我使用此代码时出错:
- (void)showFeedDialog {
// Put together the dialog parameters
NSMutableDictionary *params =
[NSMutableDictionary dictionaryWithObjectsAndKeys:
@"MY_APP_ID", @"app_id"
@"feed", @"method"
@"USER_ID", @"to",
@"try", @"caption",
@"https://developers.facebook.com/docs/reference/dialogs/", @"link",
@"try link", @"name",
@"http://fbrell.com/f8.jpg", @"picture",
@"Using%20Dialogs%20to%20interact%20with%20users.", @"description",
@"https://mighty-lowlands-6381.herokuapp.com/", @"redirect_uri",
nil];
// Invoke the dialog
[FBWebDialogs presentFeedDialogModallyWithSession:nil//[FBSession activeSession]
parameters:params
handler:
^(FBWebDialogResult result, NSURL *resultURL, NSError *error) {
if (error) {
// Case A: Error launching the dialog or publishing story.
NSLog(@"Error publishing story.");
} else {
if (result == FBWebDialogResultDialogNotCompleted) {
// Case B: User clicked the "x" icon
NSLog(@"User canceled story publishing.");
} else {
// Case C: Dialog shown and the user clicks Cancel or Share
NSDictionary *urlParams = [self parseURLParams:[resultURL query]];
if (![urlParams valueForKey:@"post_id"]) {
// User clicked the Cancel button
NSLog(@"User canceled story publishing.");
} else {
// User clicked the Share button
NSString *postID = [urlParams valueForKey:@"post_id"];
NSLog(@"Posted story, id: %@", postID);
}
}
}
}];
}
你查过了吗,朋友墙的帖子被贬低了什么???那么,你是说我不能发到朋友墙,只要把他作为标签或者贴到我自己的墙上就行了?!是的,你不能,在那个链接上自己读。如果你需要的话,你可以使用其他方法。我不能通过FBWebDialog发到朋友那里吗?是的,你可以使用,它已经在备选方案列表(提要对话框)中列出。是的,我看到了,但我的意思是,没有将他作为标记提及,比如发送带有“to”和用户ID的参数,我得到的是“无法发布到用户的墙”删除“redirect_uri”参数。请尝试使用其他用户,因为他可能将“谁可以在您的时间线上发布?”设置为“只有我”。请发布完整的错误,如果有的话。检查用户“谁可以在你的时间线上发布?”?-设置为Friends,我是Friends。重定向\u url已删除。仍然出现错误,无法捕获错误,错误显示在对话框本身上:哇!!问题在于NSDictionary对象之间的逗号。但现在我无法在对话框中包含消息“message”参数似乎不起作用很好,但为什么您需要
message
参数?此对话框不支持该参数。因为我希望用户只需按“发送/发布”,并且要在好友墙上发布的文本将来自应用程序中的文本字段。我不能这样做吗?是否有支持该参数的对话框?