Проблемы с Facebook-Api publish_stream в приложении для iPhone - PullRequest
0 голосов
/ 03 сентября 2010

Я добавил Facebook Connect в свое новое приложение для iPhone. Все отлично, без проблем.

В этом приложении, однако, мне нужно разместить на стене пользователя без какого-либо диалогового окна. Я искал в документации Facebook и, насколько я понимаю, если я попрошу пользователя дать мне правильное разрешение (в данном случае publish_stream), диалоговое окно больше не должно появляться.

Но коробка появляется, несмотря ни на что.

Надеюсь, вы мне поможете.

Спасибо.

P.S. Извините за мой плохой английский

Ответы [ 2 ]

1 голос
/ 03 сентября 2010

Используйте API графа после получения разрешения publish_stream.Вы делаете POST для:

https://graph.facebook.com/ID/feed

Этот iPhone SDK не поддерживает это изначально, вам придется реализовать это самостоятельно.Вам нужно будет убедиться, что вы создаете правильные закодированные параметры JSON и убедитесь, что они правильно экранированы.Хорошее место для начала это здесь .

0 голосов
/ 03 сентября 2010

Спасибо! Итак, если я хорошо понимаю, я должен сделать что-то вроде этого:

Используйте эту платформу http://code.google.com/p/json-framework/ для добавления поддержки JSON.

И этот код:

SBJSON *json = [SBJSON new];

  json.humanReadable = YES;

  NSString *service = @"NameService";

  NSMutableDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys:
                                  @"MessaggeFromMyApp",@"message",
                                  @"http://www.sample.com",@"link",
                                   @"nomeOfTheLink",@"name",
                                  @"captionOfTheLink",@"caption",
                                   @"descriptionofTheLink",@"description",
                                   @"MyDistrict",@"value",
                                   @"2",@"txs_Action",
                                   nil];
    //Pass it twice to escape quotes
  NSString *jsonString = [NSString stringWithFormat:@"%@", [params JSONFragment], nil];

  NSString *changeJSON = [NSString stringWithFormat:@"%@", [jsonString JSONFragment], nil];

    NSLog(jsonString);
    NSLog(changeJSON);


    NSString *requestString = [NSString stringWithFormat:@"{\"id\":15,\"method\":\"%@\",\"params\":[%@]}",service,changeJSON,nil];
    NSLog(requestString);


    NSData *requestData = [NSData dataWithBytes: [requestString UTF8String] length: [requestString length]];


    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL: [NSURL URLWithString: @"https://graph.facebook.com/me/feed"]];

    NSString *postLength = [NSString stringWithFormat:@"%d", [requestData length]];
    [request setHTTPMethod: @"POST"];
    [request setValue:postLength forHTTPHeaderField:@"Content-Length"];
    [request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
    [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
    [request setHTTPBody: requestData];

    //Data returned by WebService
    NSData *returnData = [NSURLConnection sendSynchronousRequest: request returningResponse: nil error: nil ];
    NSString *returnString = [[NSString alloc] initWithData:returnData encoding: NSUTF8StringEncoding];

    NSLog(returnString);

Еще раз спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...