我想在Android应用程序中集成vk。为此,我试图按照此链接中的以下说明操作。 Vk integration .
我已使用此代码成功登录vk。但在尝试在我的墙上发布状态后,我遇到了以下错误。
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)
在MainActivity.java的第100行中定义了以下代码。
api.createWallPost(account.user_id, text, null, null, false, false, false, null, null, null, null, null, null);
在API.java的第1200行中定义了以下代码。
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;
}
createwallpost的方法定义如下:
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;
}
是什么原因?你能帮我消除这个错误吗?
答案 0 :(得分:1)
您可以直接使用VK Android Sdk。我使用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");
要在墙上发布,您需要一些授权:
VKSdk.login(ActivityLogin.this,VKScope.FRIENDS,VKScope.WALL,VKScope.PHOTOS);
答案 1 :(得分:0)
api.createWallPost(account.user_id,message,null,null,false,false,false,null,null,new Long(0),new Long(0),null,null);
我希望它对你有所帮助