繁体   English   中英

无法共享Facebook API 4.0中的消息,出现错误:发布消息时出错

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM