iOS アプリ (Objective-C) では、動画付きのメッセージを送信します。ユーザーは、非公開にするか、友達に公開するか、公開するかを選択できます。それは長い間問題なく機能していましたが、最近、「audience = ACFacebookAudienceOnlyMe」で送信されたメッセージも公開されていることがわかりました。「audience = ACFacebookAudienceFriends」での投稿は、引き続き期待どおりに機能します。私のコードは変更されておらず、この動作が iOS9 で発生したのか、それとも Facebook の問題なのかはわかりません。誰かが同様の行動に気づいたことがありますか?
関連するコードは次のとおりです。
NSString * audience;
switch ([[messageOptions objectForKey:@"permission"]intValue]) {
case 0:
audience = ACFacebookAudienceOnlyMe;
break;
case 1:
audience = ACFacebookAudienceFriends;
break;
case 2:
audience = ACFacebookAudienceEveryone;
break;
default:
audience = ACFacebookAudienceOnlyMe;
break;
}
NSMutableDictionary *dict = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@"XXXXMyAppIDKeyXXXX", ACFacebookAppIdKey, permissions, ACFacebookPermissionsKey, audience, ACFacebookAudienceKey, nil];
__block ACAccount * facebookAccount;
[self.accountStore requestAccessToAccountsWithType:facebookAccountType options:dict completion:^(BOOL granted, NSError *error) {
if (granted && error == nil) {... send message and video here..}
ディクショナリ「dict」は、送信する直前に NSLog で出力すると次のようになります。
{
ACFacebookAppIdKey = XXXXMyAppIDKeyXXXX;
ACFacebookAudienceKey = me;
ACFacebookPermissionsKey = (
"publish_actions"
);
}
友達に投稿する場合 ACFacebookAudienceKey は「友達」です。