Facebook graph api 使用应用程序令牌检索分数

Facebook graph api 使用应用程序令牌检索分数,facebook-graph-api,token,facebook-access-token,Facebook Graph Api,Token,Facebook Access Token,所以我安装了一个应用程序,我试图通过服务器而不是应用程序发送分数。这让我能够长期保持分数,同时也拥有Facebook的社交优势 现在,我遇到的问题是使用应用程序令牌检索分数。我可以使用应用程序令牌或用户令牌发布绝对正确的帖子,但当使用应用程序令牌检索分数时,我收到以下消息: { "data": [ ] } 如果它完全不工作或是权限问题,我希望收到一个返回的错误,但它返回一个空数组的事实令人费解。更令人费解的是,使用用户访问令牌检索到的分数非常好,因此它显然正确地到达了Facebook后

所以我安装了一个应用程序,我试图通过服务器而不是应用程序发送分数。这让我能够长期保持分数,同时也拥有Facebook的社交优势

现在,我遇到的问题是使用应用程序令牌检索分数。我可以使用应用程序令牌或用户令牌发布绝对正确的帖子,但当使用应用程序令牌检索分数时,我收到以下消息:

{
  "data": [
  ]
}
如果它完全不工作或是权限问题,我希望收到一个返回的错误,但它返回一个空数组的事实令人费解。更令人费解的是,使用用户访问令牌检索到的分数非常好,因此它显然正确地到达了Facebook后端

这只是在这种情况下使用应用程序访问令牌的问题吗?文件上说我应该可以用一个,但可能是弄错了


我还想澄清一下,我已经在代码中和通过图形浏览器运行了它,但始终没有成功。

这应该与应用程序访问令牌一起工作吗?我想不是

根据法律,你可以

  • 使用用户或应用程序访问令牌检索用户的分数(
    /user\u ID/scores
  • 使用用户访问令牌(
    /app\u ID/scores
    )为您的应用检索用户的好友分数
  • 使用用户访问令牌(
    /user\u ID/scores
    )在任何应用程序中检索用户的好友分数-尽管此令牌尊重这些用户的隐私设置,因此您不会为其游戏/应用程序活动为私人的用户获取答案

这应该与应用程序访问令牌一起使用吗?我想不是

根据法律,你可以

  • 使用用户或应用程序访问令牌检索用户的分数(
    /user\u ID/scores
  • 使用用户访问令牌(
    /app\u ID/scores
    )为您的应用检索用户的好友分数
  • 使用用户访问令牌(
    /user\u ID/scores
    )在任何应用程序中检索用户的好友分数-尽管此令牌尊重这些用户的隐私设置,因此您不会为其游戏/应用程序活动为私人的用户获取答案

确保您已授予用户\u游戏\u活动和朋友\u游戏\u活动权限 在developers.facebook.com/tools/explorer上 从上面的链接中,您将获得一个应用程序访问令牌,并将其添加到您的代码中,如下所示

public void sendDataToFacebookGraphServer()
    {

            // TODO Auto-generated method stub
            final Session session = Session.getActiveSession();

             List<String> permissions = session.getPermissions();
                if (!isSubsetOf(PERMISSIONS, permissions)) {

                    Session.NewPermissionsRequest newPermissionsRequest = new Session
                            .NewPermissionsRequest(UnityPlayer.currentActivity, PERMISSIONS);
                session.requestNewPublishPermissions(newPermissionsRequest);
                    return;
                }
            HttpClient client = new DefaultHttpClient();            
            HttpPost post = new HttpPost("https://graph.facebook.com/user_id/scores");
            List<NameValuePair> pairs = new ArrayList<NameValuePair>();
            pairs.add(new BasicNameValuePair("score", "3000")); 
                   // add this line and try             
                   pairs.add(new BasicNameValuePair("access_token", "add_app_access_token_here"));

            try{
                post.setEntity(new UrlEncodedFormEntity(pairs));
            }
            catch(UnsupportedEncodingException e)
            {

            }
            try{            
                response = client.execute(post);

                Log.i("*********Response*******************************************************", response.toString());
                UnityPlayer.currentActivity.runOnUiThread(new Runnable() {

                    @Override
                    public void run() {
                        // TODO Auto-generated method stub
                        Toast.makeText(UnityPlayer.currentActivity,""+response.toString(),Toast.LENGTH_LONG).show();
                    }
                });

            }
            catch (IOException e1) 
            {

            }


}
public void sendDataToFacebookGraphServer()
{
//TODO自动生成的方法存根
最终会话=Session.getActiveSession();
List permissions=session.getPermissions();
如果(!isSubsetOf(权限、权限)){
Session.newpermissions请求newpermissions请求=新会话
.newpermissions请求(UnityPlayer.currentActivity,PERMISSIONS);
session.requestNewPublishPermissions(newPermissionsRequest);
返回;
}
HttpClient=new DefaultHttpClient();
HttpPost=新的HttpPost(“https://graph.facebook.com/user_id/scores");
列表对=新的ArrayList();
添加(新的BasicNameValuePair(“分数”,“3000”));
//添加此行并重试
添加(新的BasicNameValuePair(“访问令牌”,“在此处添加应用访问令牌”);
试一试{
setEntity(新的UrlEncodedFormEntity(对));
}
捕获(不支持的编码异常e)
{
}
试试{
响应=client.execute(post);
Log.i(“************响应**********************************************************************************”,Response.toString());
UnityPlayer.currentActivity.runOnUiThread(新的Runnable(){
@凌驾
公开募捐{
//TODO自动生成的方法存根
Toast.makeText(UnityPlayer.currentActivity,“+response.toString(),Toast.LENGTH\u LONG.show();
}
});
}
捕获(IOE1异常)
{
}
}

确保您已授予用户\u游戏\u活动和朋友\u游戏\u活动权限 在developers.facebook.com/tools/explorer上 从上面的链接中,您将获得一个应用程序访问令牌,并将其添加到您的代码中,如下所示

public void sendDataToFacebookGraphServer()
    {

            // TODO Auto-generated method stub
            final Session session = Session.getActiveSession();

             List<String> permissions = session.getPermissions();
                if (!isSubsetOf(PERMISSIONS, permissions)) {

                    Session.NewPermissionsRequest newPermissionsRequest = new Session
                            .NewPermissionsRequest(UnityPlayer.currentActivity, PERMISSIONS);
                session.requestNewPublishPermissions(newPermissionsRequest);
                    return;
                }
            HttpClient client = new DefaultHttpClient();            
            HttpPost post = new HttpPost("https://graph.facebook.com/user_id/scores");
            List<NameValuePair> pairs = new ArrayList<NameValuePair>();
            pairs.add(new BasicNameValuePair("score", "3000")); 
                   // add this line and try             
                   pairs.add(new BasicNameValuePair("access_token", "add_app_access_token_here"));

            try{
                post.setEntity(new UrlEncodedFormEntity(pairs));
            }
            catch(UnsupportedEncodingException e)
            {

            }
            try{            
                response = client.execute(post);

                Log.i("*********Response*******************************************************", response.toString());
                UnityPlayer.currentActivity.runOnUiThread(new Runnable() {

                    @Override
                    public void run() {
                        // TODO Auto-generated method stub
                        Toast.makeText(UnityPlayer.currentActivity,""+response.toString(),Toast.LENGTH_LONG).show();
                    }
                });

            }
            catch (IOException e1) 
            {

            }


}
public void sendDataToFacebookGraphServer()
{
//TODO自动生成的方法存根
最终会话=Session.getActiveSession();
List permissions=session.getPermissions();
如果(!isSubsetOf(权限、权限)){
Session.newpermissions请求newpermissions请求=新会话
.newpermissions请求(UnityPlayer.currentActivity,PERMISSIONS);
session.requestNewPublishPermissions(newPermissionsRequest);
返回;
}
HttpClient=new DefaultHttpClient();
HttpPost=新的HttpPost(“https://graph.facebook.com/user_id/scores");
列表对=新的ArrayList();
添加(新的BasicNameValuePair(“分数”,“3000”));
//添加此行并重试
添加(新的BasicNameValuePair(“访问令牌”,“在此处添加应用访问令牌”);
试一试{
setEntity(新的UrlEncodedFormEntity(对));
}
捕获(不支持的编码异常e)
{
}
试试{
响应=client.execute(post);
Log.i(“************响应**********************************************************************************”,Response.toString());
UnityPlayer.currentActivity.runOnUiThread(新的Runnable(){