簡體   English   中英

使用Facebook Javascript SDK訪問用戶位置數據

[英]Access user location data with Facebook Javascript SDK

我正在使用Facebook Javascript SDK v2.5和facebook graph API通過以下代碼訪問用戶位置數據(更具體地說是街道,郵政編碼和城市):

window.fbAsyncInit = function() {
  FB.init({
      appId      : 'my_app_ID',
      xfbml      : true,
      version    : 'v2.5'
  });
};

(function(d, s, id){
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) {return;}
     js = d.createElement(s); js.id = id;
     js.src = "//connect.facebook.net/en_US/sdk.js";
     fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));

function logIntoFB(){
    FB.login(function(){
            testAPI();
    }, {scope: 'public_profile,email,user_location'});

    function testAPI() { 
        FB.api('/me?fields=name,first_name,last_name,location',function(response) { 
           console.log(response); 
        });
    }
}

當用戶登錄並將響應記錄到控制台時,它看起來如下:

Object {name: "MyFirstName MyLastName", first_name: "MyFirstName", last_name: "MyLastName"
, id: "01010101010101"}

沒有位置對象,因此無法獲取location.city等。特定的facebook帳戶的隱私設置未更改,並且提供了地址,因此該信息應可檢索。 我已經檢查了Facebook SDK文檔以及有關StackOverflow的各種問題,但似乎沒有任何效果。 其中一些是:“ 使用fb.api的Facebook用戶位置 ”和“ 通過facebook graph API檢索 Facebook用戶的 郵政編碼

任何幫助將不勝感激。

首先,請確保您在登錄期間要求此權限(可以在應用程序的登錄對話框中查看權限列表)。

接下來,您可以獲取訪問令牌並使用訪問令牌調試器查看它是否包含user_location權限。 如果缺少此權限,則可能意味着:

  1. 用戶或者在登錄期間拒絕了此權限。
  2. 您的應用未獲批准使用此權限,並且您正在與您的應用中沒有任何角色的用戶進行測試。 未經批准的權限僅適用於該應用的管理員/開發人員。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM