当用户有权访问应用程序时,如何从Graph API获取App数据

时间:2015-03-27 12:23:21

标签: facebook facebook-graph-api facebook-javascript-sdk

我想知道当用户有权访问我的应用数据(标题和说明)时,如何使用用户区域设置获取本地化值。

我的代码是:

    var imageUrl = "http://mysite.test/webroot/img/test_image.jpg",
        userID = response.authResponse.userID,
        userLanguage,
        appTitle,
        appDescription;

    if (response.status === 'connected') {

        FB.api(
            "/" + userID,
            function (response) {
                if (response && !response.error) {
                    userLanguage = response.locale;
                }
            }
        );

        FB.api(
            'me/{namespace}:{action}', 'post', 
            {
                object: {
                    "url": imageUrl,
                    "title": appTitle,
                    "description": appDescription,
                    "image": imageUrl
                }
            },
            function(response) {

            }
        );

    } else if (response.status === 'not_authorized') {

        FB.login( function( response ) {
        }, {scope: "publish_actions"} );

    } else {

        FB.login( function( response ) {
        }, {scope: "public_profile"} );
    }

我尝试使用此代码,但/me节点返回用户数据,我想获取应用数据:

FB.api(
    "/me",
    function (response) {
      if (response && !response.error) {
        /* handle the result */
      }
    }
);

1 个答案:

答案 0 :(得分:1)

您可以使用

获取用户的区域设置
/me?fields=id,locale

然后您可以在第二次应用调用中使用此locale

/{app_id}?fields=id,name,description&locale={locale}

应该有效。您需要知道应用ID并将{app_id}替换为它。 locale参数定义了您要在其中接收数据的区域设置。

请注意,它并不一定满足每个可用的语言环境......

可以在https://www.facebook.com/translations/FacebookLocales.xml

找到语言环境列表