2

現在、アプリに Facebook ログインを実装しており、プロファイルから次の情報を取得しようとしています。

名、姓、性別、および国。

ただし、ユーザーの国を除くすべてのものしか取得できないようです。次のように、パラメーターを FBSDKGraphRequest に設定しようとしました。

let parameters = ["fields": "email, gender, user_location, id, first_name, last_name,  picture.type(large)"]

私のreadPermissionsと同様に:

loginButton.readPermissions = ["public_profile", "email", "user_location", "user_friends", "user_education_history", "user_birthday"]

ここで何が間違っていますか?ユーザーの国を取得するにはどうすればよいですか?

助けていただければ幸いです。

4

2 に答える 2

3

readPermissionsuser_locationは正しいですが、国/場所のパラメーター名は ではありませんuser_location
ですlocation

let parameters = ["fields": "id,location,name,first_name,last_name,picture.type(large),email,birthday,gender,bio,relationship_status"]

Facebook アカウントに場所を追加し、ログインしている場所を公開していることを確認してください。Facebook アプリを作成したのと同じ Facebook アカウントで試してください。

テスト目的で、警告メッセージ (下のスクリーンショットを参照) で位置情報を取得できます。ただし、アプリをアプリストアに送信する前に、Facebook からのログイン レビューを通過する必要がありますuser_location。これは、事前承認された許可ではありません。

詳細については、Graph API Explorer にアクセスしてください

Graph API エクスプローラーに移動して、アプリを試すことができます。Get TokenGet User Access Tokenをクリックしてトークンを生成します。クリックすると、許可チェックボックスが開きます。user_locationをチェックしたままにしてください。

グラフ API エクスプローラー ページ

ここに画像の説明を入力

次に、次のGet Parametersを使用して Submit をクリックします。locationパラメーターが存在することを確認してください。次のような JSON が表示されます。あなたの国と都市名で構成される名前キーを持つ場所辞書
があります。

{
  "id": "338058996547981",
  "name": "Rajan Maheshwari",
  "birthday": "04/29/1990",
  "location": {
    "id": "106517799384578",
    "name": "New Delhi, India"
  }
}

ここに画像の説明を入力

注: - また、Facebook プロフィールに場所を入力し、それを公開していることを確認する必要があります。

ここに画像の説明を入力

パーミッションでアプリを実行すると、このような警告画面で Facebook 認証が取得されます。

ここに画像の説明を入力

一部の権限はここで確認する必要があるため、ログインの確認が求められます。レビューを必要としない Facebook が無料で提供する基本的な権限は次のとおりです。

ここに画像の説明を入力

ただし、テスト目的であれば、レビューなしで場所を取得できます。ただし、iOS アプリを appstore に送信する前に、その警告メッセージを回避し、ユーザーの場所を取得するために、Facebook のログイン レビューに合格する必要があります。

于 2016-10-11T15:05:44.253 に答える