Pra*_*chi 6 android facebook facebook-graph-api
目前我正在开发一款Android应用程序,因为我正在使用Facebook SDK.它可以很好地将消息发布到墙上等,但是通过这个SDK,我无法向其他人发送应用请求.
谁能帮我吗?
这是我的代码片段:
Bundle params = new Bundle();
params.putString("message", getString(R.string.request_message));
Utility.mFacebook.dialog(Hackbook.this, "apprequests", params, new AppRequestsListener());
Run Code Online (Sandbox Code Playgroud)
和AppRequestsListener:
public class AppRequestsListener extends BaseDialogListener {
@Override
public void onComplete(Bundle values) {
Toast toast = Toast.makeText(getApplicationContext(), "App request sent", 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();
}
}
Run Code Online (Sandbox Code Playgroud)
从SDK 3.0版开始,您使用WebDialog.以下是如何使用提供的使用所有可用参数的构建器创建一个示例:
private void sendRequestDialog() {
Bundle params = new Bundle();
params.putString("title", "Send a Request");
params.putString("message", "Learn how to make your Android apps social");
params.putString("to", "12343543,32423534"); // comma seperated list of facebook IDs to preset the recipients. If left out, it will show a Friend Picker.
params.putString("data",
"{\"badge_of_awesomeness\":\"1\"," +
"\"social_karma\":\"5\"}"); // any additional data
WebDialog requestsDialog = (
new WebDialog.RequestsDialogBuilder(getActivity(), Session.getActiveSession(), params))
.setOnCompleteListener(new OnCompleteListener() {
@Override
public void onComplete(Bundle values, FacebookException error) {
// do something, e.g. show toast message
}
})
.build();
requestsDialog.show();
}
Run Code Online (Sandbox Code Playgroud)
参考:Facebook SDK 3.0 for Android:发送请求
android sdk 有您可以使用的对话框,当您打开对话框时,您可以指定要打开的对话框。
您可以在对话框文档中查看可用对话框的列表。其中一个对话框是请求对话框,您也可以从 android sdk 打开它,如下所示:
Facebook facebook = new Facebook("YOUR_APP_ID");
....
Bundle params = new Bundle();
params.putString("title", "invite friends");
facebook.dialog(this, "apprequests", params, new DialogListener() {
@Override
public void onComplete(Bundle values) {}
@Override
public void onFacebookError(FacebookError error) {}
@Override
public void onError(DialogError e) {}
@Override
public void onCancel() {}
});
Run Code Online (Sandbox Code Playgroud)
您可以为此对话框添加更多参数,使用文档查看您需要什么。
好的,看看这段代码:
Bundle paramsOut = new Bundle(), paramsIn = this.getIntent().getExtras();
paramsOut.putString("message", paramsIn.getString("message"));
this.facebook.dialog(this, "apprequests", paramsOut, new InviteListener(this));
Run Code Online (Sandbox Code Playgroud)
我使用它并且它对我来说效果很好,应用程序请求正在发送并且用户收到它。由于您的代码非常相似,因此可以安全地假设问题出在不同的地方,因此您应该将代码发布到不同的地方。
那么,您的AppRequestsListener中有什么?说它只是显示一个弹出窗口并不能帮助我帮助你。另外,这个“Hackbook”是什么?它是一项活动吗?
| 归档时间: |
|
| 查看次数: |
16468 次 |
| 最近记录: |