大家好,我正在尝试使用Facebook Api发送通知,我这样做了:
Bundle params = new Bundle();
params.putString("to", 535465135216);
params.putString("message", "Prova Prova A A");
facebook.dialog(Answer.this, "apprequests", params, new DialogListener() {
public void onComplete(Bundle values) {
Toast toast = Toast.makeText(getApplicationContext(), "Done",
Toast.LENGTH_SHORT);
toast.show();
}
@Override
public void onFacebookError(FacebookError error) {
Toast.makeText(getApplicationContext(), "Facebook Error: " + error.getMessage(),
Toast.LENGTH_SHORT).show();
}
@Override
public void onCancel() {
Toast toast = Toast.makeText(getApplicationContext(), "App request cancelled",
Toast.LENGTH_SHORT);
toast.show();
}
@Override
public void onError(DialogError e) {
// TODO Auto-generated method stub
}
});
当我尝试运行这个项目时,一切运行良好,它显示Toast“完成”,但在我的Facebook个人资料中没有出现通知。
我应该在Facebook App的设置中更改某些内容吗?
谢谢你:)
答案 0 :(得分:10)
很多时候邀请成功发送但是没有为用户显示,这是因为在应用程序设置中没有设置画布网址。
在处理应用程序邀请/请求时,canvas url参数至关重要,因为当用户对邀请(即单击“接受”)采取操作时,他会被重定向到您的应用程序。如果没有提供画布网址,则邀请本质上会变为无效,因为Facebook在点击后无法向用户发送内容!
您正在开发一个Android应用程序,因此您甚至可能不需要画布URL,但为了使邀请正常工作,您必须指定一个。
另一种可能性是,当您的应用仍设置为“沙盒模式”时,您将邀请/请求发送给未在应用程序“角色”中定义的用户。只要您的应用程序保持沙盒模式,对于未在“角色”部分中定义的任何人来说,它基本上是不可见的。这种沙盒模式允许开发人员开发和测试他们的应用程序,而不必担心在Facebook上公开它。因此,您将能够发送邀请,但如果您将其发送给未定义并参与应用程序开发的人员,则他/她将无法获得邀请(即使该操作看起来似乎是成功的)。