Question

I am trying to integrate vk in android application . For this I am trying to follow the following instructions in this link . Vk integration .

I have successfully logged in vk with this code . But after trying to post a status in my wall , I have got the following error .

02-20 14:08:54.779: W/System.err(2945): java.lang.NullPointerException
02-20 14:08:54.789: W/System.err(2945):     at com.perm.kate.api.Api.createWallPost(Api.java:1200)
02-20 14:08:54.789: W/System.err(2945):     at com.perm.kate.api.sample.MainActivity$5.run(MainActivity.java:100)

In 100th line of MainActivity.java the following code is defined .

api.createWallPost(account.user_id, text, null, null, false, false, false, null, null, null, null, null, null);

In 1200th line of API.java the following code is defined .

public WallMessage repostWallPost(String object, String message, Long gid, String captcha_key, String captcha_sid) throws IOException, JSONException, KException{
        Params params = new Params("wall.repost");
        params.put("group_id", gid);
        params.put("message", message);
        params.put("object", object);
        addCaptchaParams(captcha_key, captcha_sid, params);
        JSONObject root = sendRequest(params);
        JSONObject response = root.getJSONObject("response");
        WallMessage wall=new WallMessage(); 
        wall.id = response.optLong("post_id");
        wall.like_count=response.optInt("likes_count");
        wall.reposts_count=response.optInt("reposts_count");
        return wall;
    }

The method of createwallpost is defined as following:

public long createWallPost(long owner_id, String text, Collection<String> attachments, String export, boolean only_friends, boolean from_group, boolean signed, String lat, String lon, Long publish_date, Long post_id, String captcha_key, String captcha_sid) throws IOException, JSONException, KException{
        Params params = new Params("wall.post");
        params.put("owner_id", owner_id);
        params.put("attachments", arrayToString(attachments));
        params.put("lat", lat);
        params.put("long", lon);
        params.put("message", text);
        if(export!=null && export.length()!=0)
            params.put("services",export);
        if (from_group)
            params.put("from_group","1");
        if (only_friends)
            params.put("friends_only","1");
        if (signed)
            params.put("signed","1");
        params.put("publish_date", publish_date);
        if (post_id > 0)
            params.put("post_id", post_id);
        addCaptchaParams(captcha_key, captcha_sid, params);
        JSONObject root = sendRequest(params, true);
        JSONObject response = root.getJSONObject("response");
        long res_post_id = response.optLong("post_id");
        return res_post_id;
    }

What is the reason ? Can you help me to eradicate this error ?

Was it helpful?

Solution

You can make use of the VK Android Sdk directly. I use VKShareDialog.

new VKShareDialogBuilder().setText("Title share")
                          .setAttachmentImages(new VKUploadImage[]{new VKUploadImage(bitmap, VKImageParameters.pngImage())})
                          .setAttachmentLink("Link title", myURL)
                          .setShareDialogListener(new VKShareDialog.VKShareDialogListener() {
                                    public void onVkShareComplete(int postId) {
                                        Toast.makeText(context, "Shared sucessfully", Toast.LENGTH_SHORT).show();
                                    }

                                    public void onVkShareCancel() {
                                        Toast.makeText(context, "Share cancelled", Toast.LENGTH_SHORT).show();
                                    }

                                    @Override
                                    public void onVkShareError(VKError error) {
                                        Toast.makeText(context, "Failed to share", Toast.LENGTH_SHORT).show();
                                    }
                                })
                         .show(activity.getSupportFragmentManager(), "VK_SHARE_DIALOG");

To post on the wall, you need some authorizations:

VKSdk.login(ActivityLogin.this,VKScope.FRIENDS,VKScope.WALL,VKScope.PHOTOS);

OTHER TIPS

that's helped me:

api.createWallPost(account.user_id, message, null, null, false, false, false, null, null, new Long(0), new Long(0), null, null);

I hope it will be helpful for you

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top