问题
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 ?
回答1:
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);
回答2:
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
来源:https://stackoverflow.com/questions/21910928/error-in-posting-status-in-vk