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