FBSDKLoginButton
を使用し、Facebook
とFBSDKLoginButton.readPermissions = @[@"public_profile",@"email",@"user_likes",@"email",@"user_birthday"];
許可を求めるために、私はFBSDKLoginManager
を使用する必要がありますpublish_actionsであるもう1つの許可が必要です
と
logInWithReadPermissions:@[@"public_profile",@"user_likes",@"user_birthday"]
logInWithPublishPermissions:@[@"publish_actions"]
しかし、これは何らかの理由で私の許可に影響します
コード:-
FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
[login logInWithPublishPermissions:@[@"publish_actions"] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
if (error) {
// Process error
} else if (result.isCancelled) {
// Handle cancellations
} else {
// If you ask for multiple permissions at once, you
// should check if specific permissions missing
if ([result.grantedPermissions containsObject:@"publish_actions"]) {
// Do work
}
}
}];
[login logInWithReadPermissions:@[@"public_profile",@"",@"user_likes",@"user_birthday"] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
if (error) {
// Process error
} else if (result.isCancelled) {
// Handle cancellations
} else {
// If you ask for multiple permissions at once, you
// should check if specific permissions missing
if ([result.grantedPermissions containsObject:@"email"]) {
// Do work
}
}
}];
結果:-
**ユーザーを権限ビューにリダイレクトするには時間がかかりますか?ユーザーにすべての許可が表示されるわけではありません**
注:-警告は、レビューのためにアプリを送信する必要があることを知っていますが、これは私が今尋ねていることではありません。
更新
「Dheeraj Singh」ソリューションを試したが、この場合、ユーザーは最初にpublish_actionを取得するためにFacebookに2回リダイレクトされ、次に電子メールと誕生日の許可を取得します。これは悪いです。
Facebook Loginを使用すると、アプリはユーザーの公開プロフィール、友達リスト、メールアドレスにアクセスできます。これらの3つの権限は確認する必要はありません。代わりに、アプリのユーザーは、この情報へのアクセスを許可するかどうかを選択します。
アプリがユーザーのFacebookプロフィールの追加要素にアクセスする(読み取りアクセス許可)か、Facebookに代わってコンテンツをFacebookに公開する(書き込みアクセス許可)には、レビューのために送信する必要があります。
参照: https://developers.facebook.com/docs/apps/review#submitlogin
更新済み:
アプリは、読み取り許可と公開許可のリクエストを分離する必要があります。
FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
[login logInWithPublishPermissions:@[@"publish_actions"] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
if (error) {
// Process error
} else if (result.isCancelled) {
// Handle cancellations
} else {
// If you ask for multiple permissions at once, you
// should check if specific permissions missing
if ([result.grantedPermissions containsObject:@"publish_actions"]) {
// Do work
[login logInWithReadPermissions:@[@"user_likes",@"user_birthday"] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
if (error) {
// Process error
} else if (result.isCancelled) {
// Handle cancellations
} else {
// If you ask for multiple permissions at once, you
// should check if specific permissions missing
if ([result.grantedPermissions containsObject:@"user_birthday"]) {
// Do work
NSLog(@"Permission 2: %@",result.grantedPermissions);
}
}
}];
}
}
}];
Publish_actionsへのアクセス許可が付与されている場合、public_profileのアクセス許可も取得されるため、読み取りアクセス許可にpublic_profileは必要ありません。
私が見たように、「user_likes」、「user_birthday」、「public_profile」および「publish_actions」権限。
2015年5月1日から、facebookは「public_profile」、「email」、および「user_friends」は承認プロセスなしで利用できます。
「user_likes」、「user_birthday」および「publish_actions」facebookから承認を得る必要があります。
レビュープロセスについては、 Facebook Review からヘルプを得ることができます。
私も2週間user_posts権限で同じ問題を抱えていますが、いくつかの検索の後、この解決策を見つけました、まだこの問題がある場合はこれらの手順に従ってください
var login = FBSDKLoginManager()
@IBAction func fbBtnPressed(_ sender: AnyObject) {
login.logIn(withReadPermissions: ["email"], from: self) { (FBSDKLoginManagerLoginResult, Error) in
if Error != nil {
print("O Login via Facebook Falhou. Erro: \(Error)")
} else {
let accessToken = FBSDKAccessToken.current().tokenString
self.gotoScreen() //Function for screen after login succesfull
print("Acesso concedido ao Facebook. \(accessToken)")
}
}
}