Публикация на моей стене facebook с использованием нового sdk
Я использую новый Facebook SDK для публикации на своей стене, следуя своим инструкциям
Я получил разрешение от приложения, но когда я пытаюсь опубликовать, я получаю сообщение об ошибке
Error: HTTP status code: 400
ниже я отправляю свой код
- (void)viewDidLoad
{
self.postParams =
[[NSMutableDictionary alloc] initWithObjectsAndKeys:
@"https://developers.facebook.com/ios", @"link",
@"https://developers.facebook.com/attachment/iossdk_logo.png", @"picture",
@"Facebook SDK for iOS", @"name",
@"build apps.", @"caption",
@"testing for my app.", @"description",
nil];
[self.postParams setObject:@"hgshsghhgsls" forKey:@"message"];
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
-(IBAction)Post{
AppDelegate *appDelegate = [UIApplication sharedApplication].delegate;
[appDelegate openSessionWithAllowLoginUI:YES];
[FBRequestConnection startWithGraphPath:@"me/Mac" parameters:self.postParams HTTPMethod:@"POST"
completionHandler:^(FBRequestConnection *connection,id result,NSError *error) {
NSString *alertText;
if (error) {
alertText = [NSString stringWithFormat:@"error: domain = %@, code = %d, des = %d",error.domain, error.code,error.description];
}
else
{
alertText = [NSString stringWithFormat:@"Posted action, id: %@",[result objectForKey:@"id"]];
}
// Show the result in an alert
[[[UIAlertView alloc] initWithTitle:@"Result" message:alertText delegate:self cancelButtonTitle:@"OK!"
otherButtonTitles:nil]show];
}];
}
Что я делаю неправильно здесь, и любое предложение будет замечательным, и этот новый SDK является бета-версией? или полный?
Ответы
Ответ 1
Если вы столкнулись с какими-либо проблемами, попробуйте включить регистрацию, добавив этот код перед вызовом запроса, который вам интересен при отладке:
[FBSettings setLoggingBehavior:[NSSet
setWithObjects:FBLoggingBehaviorFBRequests,
FBLoggingBehaviorFBURLConnections,
nil]];
Ответ 2
Наконец, я решил проблему, потому что мне нужно изменить параметр Auth Token Parameter на URLFragment на странице разрешения моего приложения, тогда он работает
Ответ 3
Я использовал эту структуру для своего проекта. он работает правильно. это мой связанный код
-(IBAction)logIn:(id)sender;
{
AppDelegate *appdelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
if (!FBSession.activeSession.isOpen) {
[appdelegate sessionOpener];
}
else {
[self loginHelp];
}
и моя функция sessionOpener:
-(void) sessionOpener
{
[FBSession sessionOpenWithPermissions:nil
completionHandler:^(FBSession *session,
FBSessionState status,
NSError *error) {
// session might now be open.
if (!error) {
[self.viewController loginHelp];
}
}];
NSLog(@"%d", FBSession.activeSession.isOpen);
NSLog(@"%@", FBSession.activeSession.description );
}
он работает для меня. может быть вам полезен.
Ответ 4
проверить разрешения публикации сеанса.
его работала хорошо.
[FBSession openActiveSessionWithPublishPermissions:[[NSArray alloc] initWithObjects:@"publish_stream",@"email", nil]
defaultAudience:FBSessionDefaultAudienceFriends
allowLoginUI:YES
completionHandler:^(FBSession *session,
FBSessionState state, NSError *error) {
[self sessionStateChanged:session state:state error:error];
}];