企业微信授权登陆提示没有权限,请问怎样解决?
提问
我在企业微信中,申请了企业微信授权登录,
问题1.请问在申请时需要填写的 “应用签名” 从哪里获取到
问题出现步骤
1.我暂时把“应用签名” 输入入我生成的签名文件中 SHA1 的值,获取到 schema 如下图1
2.图2是我生成后的结果
3.从 “我的企业” 中获取 “企业ID” 作为CORPID
4.从 “应用管理” -》“自定义应用” 中获取 AgentId
5.在android studio 中设置好签名,如下:
signingConfigs {
release {
keyAlias 'key0'
keyPassword '123456'
storeFile file('test.jks')
storePassword '123456'
}
}
6.调用企业微信sdk的原码如下
public class MainActivity extends Activity {
private static final String TAG = "MainActivity";
private static String CORPID = "ww36cf81984eefac88"; //个人授权app 管理端后台单位信息中查找
private static String AGENTID = "1000002"; // 管理端 单位应用中对应应用的AgentId
private static String SCHEMA = "wwauth36cf81984eefac88000002 "; // 管理端后台-单位应用-授权登录-Android 中的schema
IWWAPI iwwapi;
int stringId;
WWMediaMergedConvs wmc = new WWMediaMergedConvs();
WWMediaMessage.WWMediaObject mo;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
stringId = getApplicationInfo().labelRes;
iwwapi = WWAPIFactory.createWWAPI(this);
iwwapi.registerApp(SCHEMA);
findViewById(R.id.btut6).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
intIDs();
//sso登陆
final WWAuthMessage.Req req = new WWAuthMessage.Req();
req.sch = SCHEMA;
req.appId = CORPID;
req.agentId = AGENTID;
req.state = "dd";
req.scopes = new ArrayList<String>() {{
add("snsapi_base");
}};
iwwapi.sendMessage(req, new IWWAPIEventHandler() {
@Override
public void handleResp(BaseMessage resp) {
if (resp instanceof WWAuthMessage.Resp) {
WWAuthMessage.Resp rsp = (WWAuthMessage.Resp) resp;
String t = "";
if (rsp.errCode != WWAuthMessage.ERR_OK) {
Toast.makeText(MainActivity.this, t = "登陆失败," + rsp.errCode + " " + rsp.errMsg,
Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(MainActivity.this, t = "登陆成功 code:" + rsp.code,
Toast.LENGTH_SHORT).show();
}
}
}
});
}
});
}
private void intIDs() {
iwwapi.registerApp(SCHEMA);
}
}
7.运行到真机后报没有权限,请问是哪里出错了
请参考文档:https://developer.work.weixin.qq.com/document/path/91074
点击下载 签名生成工具。安装此工具,根据指引生成的应用签名字符串并填写在应用管理平台上,未填写或者填写错误将导致接口无法使用。