[英]Unable to share message in Facebook API 4.0, with error : Error publishing message
当前使用Facebook 4.0 API,我尝试发布消息,但是收到以下错误消息:
错误:发布消息时出错
在此问题上寻求帮助。
private CallbackManager callbackManager;
private ShareDialog shareDialog;
private FacebookCallback<Sharer.Result> shareCallback = new FacebookCallback<Sharer.Result>() {
@Override
public void onCancel() {
Log.d("HelloFacebook", "Canceled");
}
@Override
public void onError(FacebookException error) {
Log.d("HelloFacebook", String.format("Error: %s", error.toString()));
}
@Override
public void onSuccess(Sharer.Result result) {
Log.d("HelloFacebook", "Success!");
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
getHashKey();
findViewById(R.id.btn_post).setOnClickListener(this);
FacebookSdk.sdkInitialize(this.getApplicationContext());
callbackManager = CallbackManager.Factory.create();
shareDialog = new ShareDialog(this);
shareDialog.registerCallback(callbackManager, shareCallback);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
callbackManager.onActivityResult(requestCode, resultCode, data);
}
@Override
public void onClick(View v) {
postStatus();
}
private void postStatus() {
ShareLinkContent linkContent = new ShareLinkContent.Builder()
.setContentTitle("Hello UTU")
.setContentDescription("The 'Hello Facebook' sample showcases simple Facebook integration")
.setContentUrl(Uri.parse("http://static.comicvine.com/uploads/original/11114/111141352/3551664-iron-man-6800-hd-wallpapers.jpg"))
.build();
if (ShareDialog.canShow(ShareLinkContent.class)) {
shareDialog.show(linkContent);
}
}
private void getHashKey() {
try {
PackageInfo info = getPackageManager().getPackageInfo(
"com.facebook.samples.hellofacebook",
PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
}
} catch (PackageManager.NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}
}
上面的代码正在工作。 实际上,问题是由于Facebook开发控制台中的应用程序配置设置引起的。 需要提供完整的软件包名称以及主要活动。 不管怎么说,还是要谢谢你。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.