钉钉开发文档

分享SDK常见问题

更新时间: 2019-2-12

外部分享到钉钉

Q: 手机安装了钉钉,点击分享到钉钉,钉钉没有响应?

A: 可能原因:传递的context不正确,分享到钉钉,需要使用Activity的context

Q: 手机安装了钉钉,点击分享到钉钉,钉钉的界面出来了,结果点击分享时,没有响应?

A: 可能原因:1、没有配置钉钉的混淆消息;2、没有网络;3、申请的钉钉的签名信息不匹配

可能原因1:没有配置钉钉的混淆消息

如何发现:
* 查看log日志的方式,看到相关信息
Log.e("DDMediaMessage", "get media object from bundle failed: unknown ident " + className);
如何解决:
*  钉钉分享sdk的相关反混淆配置在分享的demo工程中,参照配置即可

可能原因2:没有网络

如何发现

  • 查看log日志的方式Log.e("ShareDelegate", "check app auth error,the reason is: " + s1);
  • 通过钉钉分享提供的回调的activity中,查看信息
    目前的错误信息是通用的 errorCode = BaseResp.ErrCode.ERR_AUTH_DENIED
    errorMsg = "key check error"
    如何解决
  • 打开手机wifi或者移动网络
  • 在自己的app中,做分享前,判断下有没有网络,没有网络,直接提示用户没有网络

可能原因3:申请的钉钉的签名信息不匹配

如何发现

  • 方式1(推荐的) 在自己的app或者测试app中,在分享的程序前,校验自己的app_id,packageName,以及签名是否与自己申请的一致(本方式是建议的操作方式,而且可以在debug和release的测试版本中,都加入以下的示例代码)
    举例场景如下, MainActivity中,有分享到钉钉的按钮,在分享正式调用前,调用如下的逻辑
private static final String ONLINE_PACKAGE_NAME = "package_name_holder";//将值替换为在钉钉开放平台上申请时的packageName
private static final String ONLINE_APP_ID = "app_id_holder";//将值替换为在钉钉开放平台上申请时平台生成的appId
private static final String ONLINE_SIGNATURE = "signature_holder";//将值替换为在钉钉开放平台上申请时的signature
private static final String CURRENT_USING_APP_ID = "package_app_id_holder";//将值替换为你使用的APP_ID

/**
 * 校验分享到钉钉的参数是否有效
 * @return
 */
private boolean checkShareToDingDingValid() {
    if(!TextUtils.equals(ONLINE_PACKAGE_NAME, getPackageName())){
        Toast.makeText(this, "包名与线上申请的不匹配", Toast.LENGTH_SHORT).show();
        return false;
    }
    if(!TextUtils.equals(ONLINE_APP_ID, CURRENT_USING_APP_ID)){
        Toast.makeText(this, "APP_ID 与生成的不匹配", Toast.LENGTH_SHORT).show();
        return false;
    }
    if(!TextUtils.equals(ONLINE_SIGNATURE, SignatureCheck.getMD5Signature(this, getPackageName()))){
        Toast.makeText(this, "签名与线上生成的不符", Toast.LENGTH_SHORT).show();
        return false;
    }
    return true;
}
  • 方式2 查看log日志的方式
    • Log.e("ShareDelegate", "check app auth error,the reason is: " + s1);
  • 方式3 通过钉钉分享提供的回调的activity中,查看信息
目前的错误信息是通用的 
errorCode = BaseResp.ErrCode.ERR_AUTH_DENIED 
errorMsg = "key check error"

如何解决

  • 核对签名信息,如果不匹配,更新签名信息
  • 如果确认签名信息没有问题,检查是否是debug和release版本的问题,正常来讲,debug和release版本的签名不一致,需要根据这两个版本,分别申请app_id

Q: 外部链接分享钉钉,在钉钉内打开,页面底部出现“赞”和“评论”?

A: 在分享链接中拼接参数 “_dt_no_comment=false” 即可解决。

钉钉分享到外部

Q: 找不到微信/qq/新浪微博?

A:可能原因:1、手机端没有安装这些应用;2、手机屏蔽了钉钉读取应用安装列表;3、钉钉当前页面H5的配置,屏蔽了这些平台的分享

以上内容是否对您有帮助:
在文档使用中是否遇到以下问题(多选):
  • 内容错误
  • 更新不及时
  • 链接错误
  • 缺少代码/图片示例
  • 太简单/步骤待完善
手机号
更多建议
提交成功,感谢您的反馈!