2014-03-25 53 views
2

我想在iOS中設置Facebook帖子的privacy。通過此設置,您可以指定是要讓所有人,朋友還是隻有您看到帖子。在添加觀衆設置之前,一切都奏效了。在我添加之後,代碼在FBRequestConnection行上與此錯誤一起崩潰:如何在iOS中設置Facebook發佈的隱私?

​​

這是相關的代碼。我調試並確保所有傳遞給Facebook的參數不是零和合理的。我不確定這是Facebook問題還是Objectice-C問題。

- (void)postMessage:(NSString *)message url:(NSURL *)url thumbnail:(NSURL *)thumbnail audience:(SocialNetworkAudience)audience 
{   
    NSString* privacy; 
    switch (audience) { 
     case SocialNetworkAudiencePrivate: 
      privacy = @"SELF"; 
      break; 
     case SocialNetworkAudienceProtected: 
      privacy = @"ALL_FRIENDS"; 
      break; 
     case SocialNetworkAudiencePublic: 
      privacy = @"EVERYONE"; 
      break; 
    } 

    [FBRequestConnection 
     startWithGraphPath:@"/me/feed" 
     parameters:@{ 
      @"description": message, 
      @"link": url.absoluteString, 
      @"picture": thumbnail.absoluteString, 
      @"privacy": @{ 
       @"value": privacy 
      } 
     } 
     HTTPMethod:@"POST" 
     completionHandler:^(FBRequestConnection *connection, id result, NSError *error) { 
     } 
    ]; 
} 

回答

8

我試了一堆隨機的東西,發現隱私參數應該是一個字符串。從反向工程中,我相信Facebook在發送請求之前會檢查每個參數的長度。太糟糕的Facebook從來沒有記錄這一點。

例子:

@"privacy": @"{'value': 'SELF'}" 
+0

這爲我工作,但要小心,似乎是在價值選擇一個層次:朋友'大家>朋友>朋友>僅me'(不知道在哪裏定製來)。這樣,從用戶授予特權到應用程序的時間的隱私設置將覆蓋您的「值」(例如,當應用程序被授予默認「僅我」值的權限時,無論您從應用程序發送的內容是否總是被覆蓋「僅限我」 ')。 –

相關問題