2016-07-24 2 views
1

У меня проблема при получении взаимных предпочтений с помощью API-интерфейса Facebook. Контекст следующий:Facebook Graph API - Получение взаимных предпочтений

  • ПользовательА является запрашивающим из приложения IOS
  • ПользовательЫ и USERB предоставили «user_likes» разрешения как из приложения IOS
  • ПользовательА и USERB являются не Facebook друзей

Мое приложение Swift код для этой части заключается в следующем:

self.FBLoginButton.readPermissions = ["public_profile", "email", "user_friends", "user_birthday", "user_about_me", "user_likes"] 
... 
... 
let graphRequest : FBSDKGraphRequest = FBSDKGraphRequest(graphPath: userBFBid, parameters: ["fields": "context.fields(mutual_likes).limit(10)"]) 
graphRequest.startWithCompletionHandler({ (connection, result, error) -> Void in 
     if ((error) != nil) { 
      print("Error: \(error)") 
     } else { 
      print("res: \(result)") 
     } 
    }) 

В результате получается следующее:

res: { 
    context =  { 
    id = dXNlcl9jb250ZAXh0OgGQg20zLjrZAswOnuX6*******; 
    "mutual_likes" =   { 
     data =    (
     ); 
     summary =    { 
      "total_count" = 0; 
     }; 
    }; 
    }; 
    id = 101532998**********; 
} 

Как вы можете видеть, взаимные симпатии не возвращаются.

Я сделал тот же запрос с ПользовательА и userC, которые являются Facebook друзей, и что работает правильно, все их взаимные симпатии возвращаются.

Снова: userA, userB и userC имеют приложение, установленное и предоставленное user_likes.

Любая идея исправить это и получить взаимные впечатления с двумя пользователями, которые не друзья Facebook?

ответ

2

Я, наконец, нашел проблему.

Прежде всего: Понравилось пользователь должен быть видимым в FB конфигурации учетной записи пользователя конфиденциальности общественной быть доступным по API даже если user_likes разрешение предоставлено. Источник: Facebook graph api empty data when getting user likes

Во-вторых, если пользователи не друзей на Facebook, запрос должен также включать параметр appsecret_proof (https://developers.facebook.com/docs/graph-api/securing-requests). Поэтому запрос должен быть выполнен с вашего сервера, а не из вашего приложения по соображениям безопасности. Источник: https://developers.facebook.com/bugs/101463963524794/

Надежды, которые помогают кому-то в один прекрасный день!

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