Регистрация в Facebook с помощью Graph

Я пытаюсь зарегистрироваться в своем приложении с помощью Facebook, я создал историю, действие и тип объекта. Facebook дал мне код:

NSMutableDictionary<FBGraphObject> *object =
[FBGraphObject openGraphObjectForPostWithType:@"restaurant.restaurant"
                                        title:@"Sample Restaurant"
                                        image:@"https://s-static.ak.fbcdn.net/images/devsite/attachment_blank.png"
                                          url:@"http://samples.ogp.me/440002909390231"
                                  description:@"This place rocks"];;

[FBRequestConnection startForPostWithGraphPath:@"me/objects/restaurant.restaurant"
                               graphObject:object
                         completionHandler:^(FBRequestConnection *connection,
                                             id result,
                                             NSError *error) {
                             // handle the result
                         }];

Но это не работает.

Я тоже пробовал:

 NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys:
                                                                 @"302184056577324", @"fb:app_id",
                                                                 @"restaurant.restaurant", @"og:type",
                                                                 @"http://samples.ogp.me/440002909390231", @"og:url",
                                                                 @"Sample Restaurant", @"og:title",
                                                                 @"https://s-static.ak.fbcdn.net/images/devsite/attachment_blank.png", @"og:image",
                                                                 @"This place rocks", @"og:description",
                                                                 @"1601 Willow Rd.", @"restaurant:contact_info:street_address",
                                                                 @"Menlo Park", @"restaurant:contact_info:locality",
                                                                 @"California", @"restaurant:contact_info:region",
                                                                 @"94025", @"restaurant:contact_info:postal_code",
                                                                 @"United States", @"restaurant:contact_info:country_name",
                                                                 @"[email protected]", @"restaurant:contact_info:email",
                                                                 @"212-555-1234", @"restaurant:contact_info:phone_number",
                                                                 @"http://www.facebook.com", @"restaurant:contact_info:website",
                                                                 @"37.484828", @"place:location:latitude",
                                                                 @"-122.148283", @"place:location:longitude",
                                                                 nil
                                                                 ];
                                         /* make the API call */
                                         [FBRequestConnection startWithGraphPath:@"me/myapp:check_in"
                                                                      parameters:params
                                                                      HTTPMethod:@"POST"
                                                               completionHandler:^(
                                                                                   FBRequestConnection *connection,
                                                                                   id result,
                                                                                   NSError *error
                                                                                   ) {
                                                                   /* handle the result */
                                                                   DBLog(@"result: %@", result);
                                                                   DBLog(@"error: %@", error);
                                  }];

         }

Оба кода не работают, кто-нибудь может мне помочь?

Спасибо


person Nathan Hegedus    schedule 13.03.2014    source источник
comment
Какую ошибку вы получаете?   -  person MCMatan    schedule 14.03.2014
comment
ошибка = {код = 1; message = Произошла неизвестная ошибка.; тип = OAuthException; };   -  person Nathan Hegedus    schedule 14.03.2014
comment
Вы проверили, что FBSession открыт?   -  person MCMatan    schedule 14.03.2014
comment
Да, сессия открыта   -  person Nathan Hegedus    schedule 20.03.2014
comment
А как насчет разрешений на открытие FBSession?   -  person Sergey Nikitin    schedule 01.04.2014


Ответы (2)


Попробуй это

[FBRequestConnection startForPostStatusUpdate:message 
                                    place:placeId 
                                     tags:nil 
                        completionHandler:
  ^(FBRequestConnection *connection, id result, NSError *error) {
       NSLog(@"Response....... \n\n %@  %@ %@",connection,result,error);
  }
];
person Rahul Mathur    schedule 27.03.2014

Я нашел этот способ:

    [FBSession openActiveSessionWithPublishPermissions:@[@"publish_actions"]
                                   defaultAudience:FBSessionDefaultAudienceEveryone
                                      allowLoginUI:YES
                                 completionHandler:^(FBSession *session, FBSessionState state, NSError *error) {
                                     if (FBSession.activeSession.isOpen && !error) {

                                         // specify that this Open Graph object will be posted to Facebook
                                         object.provisionedForPost = YES;

                                         // Post custom object
                                         [FBRequestConnection startForPostOpenGraphObject:object completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {

                                             // create an Open Graph action
                                             id<FBOpenGraphAction> action = (id<FBOpenGraphAction>)[FBGraphObject graphObject];
                                             [action setObject:[result objectForKey:@"id"] forKey:@"establishment"];

                                             // create action referencing user owned object
                                             [FBRequestConnection startForPostWithGraphPath:@"/me/myapp:check_in" graphObject:action completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
                                                 if(!error) {

                                                     success();

                                                 }else{

                                                     failure(error);

                                                 }
                                             }];

                                         }];



                                     }
                                 }];

Но я должен изменить действие место на пользовательское заведение, и таким образом я опубликую дважды на временной шкале пользователя одно простое сообщение и другое >зарегистрируйтесь

Это работает, но не на 100% правильно.

person Nathan Hegedus    schedule 20.03.2014