在android中使用facebook SDK,如何邀请朋友?

时间:2016-05-02 16:09:06

标签: android facebook-graph-api

这是第一次在android中使用facebook SDK,所以在使用facebook登录我的应用程序之后!我检索了我的invitable_friends并在listView中显示它们

       new GraphRequest(
            AccessToken.getCurrentAccessToken(),
            "/me/invitable_friends",
            null,
            HttpMethod.GET,
            new GraphRequest.Callback() {
                public void onCompleted(GraphResponse response) {

                    try {
                        JSONObject object = new JSONObject(response.getRawResponse());
                        JSONArray array = object.getJSONArray("data");
                        for (int i = 0; i < array.length(); i++) {
                            JSONObject jsonObject = array.getJSONObject(i);
                            String id = jsonObject.optString("id");
                            String name = jsonObject.optString("name");
                            String url = jsonObject.optJSONObject("picture").optJSONObject("data").optString("url");
                            Person person = new Person(id,name,url);
                            person.setId(id);
                            person.setName(name);
                            person.setUrl(url);
                            list.add(person);

                        }
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }

                    listView.setAdapter(new FriendsAdapter(getApplicationContext(),list));

现在我需要向我的朋友发送邀请,以便在点击时使用我的应用程序。

所以我在 OnItemClickListener

上处理
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                        @Override
                        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

                            String appLinkUrl;

                            appLinkUrl = "Application Link";

                            if (AppInviteDialog.canShow()) {
                                AppInviteContent content = new AppInviteContent.Builder()
                                        .setApplinkUrl(appLinkUrl)
                                        .build();
                                AppInviteDialog.show(FriendsList.this, content);
                            }

                        }
                    });
                }
            }
    ).executeAsync();

我跟踪流程的成功或失败

 appInviteDialog = new AppInviteDialog(this);
    appInviteDialog.registerCallback(callbackManager, new FacebookCallback<AppInviteDialog.Result>() {
        @Override
        public void onSuccess(AppInviteDialog.Result result) {
            Log.d("Yehia","onSuccess result = "+ result.getData().toString());
        }

        @Override
        public void onCancel() {}

        @Override
        public void onError(FacebookException e) {
            Log.d("Yehia","onError message = "+ e.getMessage());
        }
    });

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    callbackManager.onActivityResult(requestCode, resultCode, data);

}

但不幸的是总是 onError 被调用! 我知道我有一些误解。 有谁能够帮我 ! 注意:我的链接应用程序尚未运行! 提前谢谢。

1 个答案:

答案 0 :(得分:0)

实际上当我将它切换到v4.0.0时,我正在使用SDK v4.11.0。