2013-07-30 3 views
0

Я создал приложение для Facebook для своего приложения iOS в консоли разработчика Facebook, но когда я использую этот идентификатор приложения, хотя я получаю ответ как успех, он не получит вывешенный. Пожалуйста, найдите ниже мой код (даже я получаю идентификатор для этого конкретного сообщения)iOS 6 Социальная структура Facebook с графиком api не отправляется

Но дело в том, что я выполняю тот же код с моим существующим идентификатором приложения Facebook (который в настоящее время используется для моего живого приложения), это отправлено и работает отлично, поэтому, по моему предположению, есть что-то, что мне нужно сделать в настройке приложения Facebook в консоли разработчика, но я не смог найти. может ли кто-нибудь дать мне ключ?

Заранее спасибо.

Примечание: Я использую IOS 6 социальных framwork

метод Get пользователя

- (void)getUserAndShare { 
    NSLog(@"Getting User"); 

    if(!_accountStore) 
     _accountStore = [[ACAccountStore alloc] init]; 

    ACAccountType *facebookTypeAccount = [_accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook]; 
    [_accountStore requestAccessToAccountsWithType:facebookTypeAccount 
              options:@{ACFacebookAppIdKey: @"xxxxxxxxxxxxxx", ACFacebookPermissionsKey: @[@"email"]} 
             completion:^(BOOL granted, NSError *error) { 
              if(granted){ 
               NSArray *accounts = [_accountStore accountsWithAccountType:facebookTypeAccount]; 
               _facebookAccount = [accounts lastObject]; 
               NSLog(@"Success account"); 

               [_accountStore renewCredentialsForAccount:_facebookAccount completion:^(ACAccountCredentialRenewResult renewResult, NSError *error) { 
                if (error){ 

                } 

                [self postPhoto:nil]; 
               }]; 


              } 
             }]; 

} 

Share метод

-(IBAction)postPhoto{ 

    if(!_accountStore) 
     _accountStore = [[ACAccountStore alloc] init]; 

    NSDictionary *parameters = @{@"message": @"this is a resource picture 2", ACFacebookAppIdKey: @"xxxxxxxxxxxxxx"}; 

    SLRequest *facebookRequest = [SLRequest requestForServiceType:SLServiceTypeFacebook 
                requestMethod:SLRequestMethodPOST 
                   URL:[NSURL URLWithString:@"https://graph.facebook.com/me/photos"] 
                 parameters:parameters]; 

    NSData *data = UIImagePNGRepresentation([UIImage imageNamed:@"sec.jpg"]); 
    [facebookRequest addMultipartData: data 
          withName:@"source" 
           type:@"multipart/form-data" 
          filename:@"msg.jpg"]; 

    facebookRequest.account = _facebookAccount; 

    [facebookRequest performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) 
    { 
     if (error) { 
     } 
     else 
     { 
      NSLog(@"Post successful"); 
      NSString *dataString = [[NSString alloc] initWithData:responseData encoding:NSStringEncodingConversionAllowLossy]; 
      NSLog(@"Response Data: %@", dataString); 
     } 
    }]; 
} 

Edit: Требуется ли запросить специальное разрешение на использование графа API при вызове requestAccessToAccountsWithType?

ответ

1

Наконец я получил это работает, и мое предположение было правильно :) Я должен добавить новое разрешение при запросе доступа. Так как я сказал, что это сработало в моем предыдущем идентификаторе приложения Facebook, это потому, что я уже предоставил разрешение для этого приложения. Во всяком случае, для тех, кто интерес, чтобы увидеть, что это решение, найти его ниже,

//Specify App ID and permissions 
    NSDictionary *options = @{ 
           ACFacebookAppIdKey: @"xxxxxxxxxxxxxxx", 
           ACFacebookPermissionsKey: @[@"publish_stream", @"publish_actions"], 
           ACFacebookAudienceKey: ACFacebookAudienceFriends 
           }; 

Запрошенных два новых разрешений publish_stream и publish_actions

0

Я думаю, что проблема с вашим типом MIME, вопрос в этой строке:

[facebookRequest addMultipartData: data 
          withName:@"source" 
           type:@"multipart/form-data" 
          filename:@"msg.jpg"]; 

Изменение, что:

[facebookRequest addMultipartData:data 
         withName:@"media" 
          type:@"image/jpeg" 
         filename:@"msg.jpg"]; 
+0

Спасибо за ответ, но он не работает, и если код неправильно, как он работает с другим идентификатором приложения Facebook? –

Смежные вопросы