Android微信登录(shareSDK)注意事项

Unity 利用sharesdk接微信登录的问题 这几天项目中要接微信,我选择了sharesdk,花了几天时间研究,终于登陆成功,过程中遇到了很多的坑,好记性不如烂笔头,以此博文记录我的微信接入过程 *一。关于sharesdk 1.在mob.com官网下载sharesdkforunity 温馨提示:这儿我是没下载下来,客服大大帮我下载的,如果有什么不懂,一定要问客服大大哦,他们人很好的 ios客服大大QQ:800820690 A 阅读详情

Android微信登录是个坑(shareSDK)

标签(空格分隔): shareSDK 微信登录 Android


第三方登录,只有微信是最麻烦的东西,之所以说麻烦是官方文档写的真的,网上的各种demo虽然能跑,但是却总有一些小问题注意不到。

首先,注册微信的开发者帐号,注意先生成Key文件,打包,然后再去获得微信需要的两个值。检查工具
下载检查工具
微信包的位置,写法要严格
这里写图片描述

<activity android:name="com.jiuyuhulian.LiveRoom.wxapi.WXEntryActivity"
            android:theme="@android:style/Theme.Translucent.NoTitleBar"
            android:configChanges="keyboardHidden|orientation|screenSize"
            android:exported="true"
            android:screenOrientation="portrait"
        />

AndroidStudio的gradle虽然强大,但是也很难掌握,Asset文件夹,最好右键new->Folder->AssetFoleder去建立, 然后将ShareSDK的xml文件放进去。

WXEntryActivity 
代码就不贴了,可以去ShareSDK找最新的Demo, 切记不要拿Demo直接导入,有的版本很旧。
/** 微信登录调用 */
public void WeChatLogin(){
        Platform weixinfd = ShareSDK.getPlatform(Wechat.NAME);
        weixinfd.setPlatformActionListener(this);
        if (weixinfd.isValid ()){
            weixinfd.removeAccount();
        }
        Log.d("LOGIN", "weixinfd.showUser");
        weixinfd.showUser(null);
    }
/**
 * 微信登录回调
 * @param platform
 * @param action
 */
@Override
public void onCancel(Platform platform, int action) {
    Message msg = new Message();
    msg.what = MSG_ACTION_CCALLBACK;
    msg.arg1 = 3;
    msg.arg2 = action;
    msg.obj = platform;
    UIHandler.sendMessage(msg, this);
}

@Override
public void onComplete(Platform platform, int action, HashMap<String, Object> res) {
    Message msg = new Message();
    msg.what = MSG_ACTION_CCALLBACK;
    msg.arg1 = 1;
    msg.arg2 = action;
    System.out.println(res);
    //获取资料
    String nickname = platform.getDb().getUserName();//获取用户名字
    String iconUri = platform.getDb().getUserIcon(); //获取用户头像
    platform.getDb().get("openid");
    String openid =platform.getDb().getUserId();
    String token = platform.getDb().getToken();
    String refresh_token111 = platform.getDb().get("refresh_token");
    String toJSLogin = "{" +
            "  \"headimgurl\" : \"" + iconUri + "\","
            + "  \"nickname\" : \"" + nickname + "\","
            + "  \"openid\" :  \""+ openid + "\""
            + "}";
    Log.d("WXCHATLOGIN", toJSLogin);
    msg.obj = toJSLogin;
    UIHandler.sendMessage(msg, this);

}

@Override
public void onError(Platform platform, int action, Throwable t) {
    t.printStackTrace();

    Message msg = new Message();
    msg.what = MSG_ACTION_CCALLBACK;
    msg.arg1 = 2;
    msg.arg2 = action;
    msg.obj = t;
    UIHandler.sendMessage(msg, this);

    // 分享失败的统计
    ShareSDK.logDemoEvent(4, platform);
}

// 回调handleMessage
@Override
public boolean handleMessage(Message msg) {
    switch (msg.arg1) {
        case 1: {
            // 成功
            String str = (String) msg.obj;
            popFragment.getLoginwebView().loadUrl(
                    String.format("javascript:wxLogin(" + str + ")"));
            Toast.makeText(mContext, "成功", Toast.LENGTH_SHORT).show();
        }
        break;
        case 2: {
            // 失败
            Toast.makeText(mContext, "失败", Toast.LENGTH_SHORT).show();

            String expName = msg.obj.getClass().getSimpleName();
            if ("WechatClientNotExistException".equals(expName)
                    || "WechatTimelineNotSupportedException".equals(expName)
                    || "WechatFavoriteNotSupportedException".equals(expName)) {
                Toast.makeText(mContext, "请安装微信客户端", Toast.LENGTH_SHORT).show();
            }
        }
        break;
        case 3: {
            Toast.makeText(mContext, "取消····", Toast.LENGTH_SHORT)
                    .show();
        }
        break;
    }

    return false;
}
ShareSDK for Android常见问题汇总(一) 算法知识点繁多,企业考察的题目千变万化,面对越来越近的“金九银十”,我给大家准备好了一套比较完善的学习方法,希望能帮助大家在有限的时间里尽可能系统快速的恶补算法,通过高效的学习来提高大家面试中算法模块的通过率。这一套学习资料既有文字档也有视频,里面不仅仅有关键知识点的整理,还有案例的算法相关部分的讲解,可以帮助大家更好更全面的进行学习,二者搭配起来学习效果会更好。部分资料展示:有了这套学习资料,坚持刷题一周,你就会发现自己的算法知识体系有明显的完善,离大厂Offer的距离更加近。 阅读详情

相关推荐

shareSDK android第三方qq,微信登录

利用shareSDK进行android的qq、微信的第三方登陆,这是官网上面的例子,可以直接运行里面的apk程序,若是自己编译时要注意把签名改成里面的签名,要不然微信登陆不能用。

Android ShareSDK第三方微信QQ登陆

最近公司需求做第三方登陆,本人将开发的时候注意事项给大家分享一下。希望以后可以减少大家进坑趟水。

lengkunyu1015的博客 603

Android集成微信登录的步骤详解

一、首先在Application的onCreate中写: // GeneralAppliction.java public static IWXAPI sApi; @Override public void onCreate() { super.onCreate(); sApi = WXEntryActivity.initWeiXin(this, AppConst.WEIXIN_APP_ID); } 二、在需要登录的地方添加: // MainActivity.java WXEntryActivity.loginWeixin(MainActivity.this, GeneralApp

shareSDK分享遇到的坑

一。 首先是AndroidManifest                                                                                                                                                      

DJS168888的专栏 1万+

警惕!数字签名伪造的攻防演练:用SigThief克隆证书的真实测试(Windows环境)

本文深入探讨了Windows环境下数字签名伪造的攻防技术,详细介绍了使用SigThief工具进行签名提取与克隆的实战步骤。通过真实测试案例,揭示了数字签名安全机制的潜在漏洞,并提供了有效的防御策略和检测技术,帮助安全人员提升系统防护能力。

weixin_42530732的博客 408

STM32实战篇:使用USART发送/接收数据

在发送字符时也可以直接使用其对应的ASCLL码,例如: USART_SendData(USART1, 0x61);

qq_74114817的博客 596

Android使用ShareSDK集成QQ、微信、微博等第三方登录

转载请注明出处:http://blog.youkuaiyun.com/alpha58/article/details/62424058前言第三方登录几乎是每个APP的必须功能。有些人说看官方的文档实在让人眼花缭乱,以前自己第一次做这些功能的时候也会遇到很多坑。这里整理了一份比较详细的,主要给新手学习。有任何问题欢迎提出来!1、获取ShareSDK的AppKey(照着流程来,很简单!) http://bbs.m

wildma的博客 6620

告别Link180!在Ansys Mechanical 2020R2中正确启用Cable280绳索单元(附Beta选项开启指南)

本文详细介绍了在Ansys Mechanical 2020R2中启用Cable280绳索单元的全过程,包括Beta选项的开启步骤、建模技巧及高阶应用。Cable280作为专为绳索仿真设计的单元,相比传统的Link180单元,在大变形模拟和计算效率上表现更优,特别适合斜拉桥、电梯牵引绳等工程场景。

weixin_33711647的博客 405

Android中在弹窗中使用RadioGroup踩的坑,以及使用shareSDK分享的关键性代码

接手项目后的有一天,我在使用自家APP的时候,本来想分享一则消息到微信里,第一次分享很成功,但我还想继续给其他人分享,就再次弹出了分享的弹窗,我依旧点击微信分享,可是,并没有执行分享,弹窗就消失了,我就很奇怪为什么没有分享。之后去翻看代码,看到Dialog中使用的是RadioGroup,包含四个RadioButton,通过对RadioGroup设置onCheckchanged监听来实现分享的,我当

wxz的博客 833

华为AC外置Portal认证方案配置步骤指南

华为AC外置Portal认证方案配置步骤指南

m0_46129105的博客 7663

保姆级教程:从OrthoFinder到CAFE5,手把手搞定基因家族收缩扩张分析(附完整代码与避坑指南)

本文提供从OrthoFinder到CAFE5的基因家族收缩扩张分析全流程教程,涵盖数据预处理、系统发育树准备、CAFE5运行与参数优化等关键步骤。通过详细代码示例和避坑指南,帮助研究者高效完成基因家族进化分析,特别适合生物信息学初学者。

dianshu1593的博客 390

ShareSDK 第三方登录 Android

在Android 应用中使用第三方登录是比较常见的,最常用的就是微信,qq,新浪微博。第三方登录就可以借助第三方的工具ShareSDK,下面是第三方登录集成ShareSDK的使用。(3.0.2版本) 首先在 ShareSDK官网 下载SDK。然后根据 官方文档 来集成使用。打开所下载的 ShareSDK for Android 目录中的 QuickIntegrater.jar ,选择自己想要使用的平

Android_小菜菜的博客 654

基于ESM3微调的抗菌肽生成器:技术方案与实现

基于ESM3微调的抗菌肽生成器:技术方案与实现 摘要 本文提出了一种基于ESM3蛋白质语言模型的抗菌肽生成框架,采用两阶段训练策略:先在151万肽序列上预训练,再在1.3万抗菌肽数据上微调。模型能够生成具有合理长度分布、低重复率且高新颖性的抗菌肽序列。文章详细介绍了数据预处理流程、模型架构设计、训练策略及评估方法,为抗菌肽的理性设计提供了有效的计算工具。实验结果表明,该方法生成的抗菌肽序列在保持生物活性的同时具有较高的结构多样性。 关键词:抗菌肽设计;蛋白质语言模型;ESM3;深度学习;序列生成

huanghm88的专栏 175

ShareSDK for Android常见问题汇总(一)(1)

【问题2】:已经增加了onekeyshare.jar,编译没有提示错误,但运行时提示找不到类WeiboGridView答案:请确保您的编译sdk版本为android2.2以上,并在您项目的libs下添加android.suport的包,这个包是android sdk自己提供的,因此share sdk并未提供此包。【问题3】:为什么我使用Demo中人人网的AppId和ApiKey以后,无法授权和获取资料答案:Demo中的开发者帐号是测试帐号,仅用于集成演示,按照人人网的规定,如果您的帐号要使用这个ApiKey

2401_83692985的博客 618

FPGA信号处理系列文章——分数倍插值抽取滤波器(一)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 FPGA信号处理系列文章——分数倍插值抽取滤波器(一)前言信号流matlab模型频谱示意图分析总结 前言 变采样率滤波器不仅仅存在整数倍插值和整数倍抽取的情况,还会存在分数倍插值抽取的情况。那这种情况下要怎么处理呢 信号流 分数倍插值抽取滤波器的信号流是什么?信号先进行插值,再进行FIR滤波,最后进行抽取 matlab模型 %signal 定点化数据输入 coeff_val_fir = importdata('fir.coe'); si

gzy0506的博客 1万+

基于STM32设计的老人监护系统(OneNet)_118

该项目是基于STM32设计的老人监护系统。本系统可以通过脉搏心率传感器,体温传感器检测老人的脉搏状态,体温状态,把老人的数据状态在STM32单片机内部进行处理,然后通过GSM模块上传到OneNet云平台,在通过可视化界面显示出来,这样可以让子女随时随地了解到老人现在的身体情况,以便对老人的突发情况能够做出及时的预防和处理。而且如今,随着老人年纪不断的增长,身体体质不断的衰弱,在上楼梯或者走斜坡的时候很容易会发生摔倒或跌倒,如果不及时的接收到治疗,很可能会造成很严重的后果。

7456

ShareSDK for Android常见问题汇总(一)(2)

各行各样都会淘汰一些能力差的,不仅仅是IT这个行业,所以,不要被程序猿是吃青春饭等等这类话题所吓倒,也不要觉得,找到一份工作,就享受安逸的生活,你在安逸的同时,别人正在奋力的向前跑,这样与别人的差距也就会越来越遥远,加油,希望,我们每一个人,成为更好的自己。BAT大厂面试题、独家面试工具包,资料包括 数据结构、Kotlin、计算机网络、Framework源码、数据结构与算法、小程序、NDK、Flutter《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!

2401_84852449的博客 975

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Android-Studio 用ShareSDK集成社会化分享,短信验证码,视频录制功能

ShareSDK主要用于qq、qq空间、微信、微信朋友圈的分享功能以及第三方登录功能SMSSDK主要用于短信验证码集成工作:将sharesdk与smssdk同时集成到android-studio项目中: 注册账号获取key与secret(有两对奥,一个是sharesdk一个是SMSSdk,这里只贴了一个图) 如果项目的主模块同时依赖ShareSDKLibs与SMSSDKLibs,

SpringYang 1781

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

ShareSDK for Android常见问题汇总(一),android 工作资料

【问题3】:为什么我使用Demo中人人网的AppId和ApiKey以后,无法授权和获取资料 答案:Demo中的开发者帐号是测试帐号,仅用于集成演示,按照人人网的规定,如果您的帐号要使用这个ApiKey进行调试,需要在我们的开发者信息中注册你的帐号信息,因为你的帐号我们是不知道的,因此我们没有将你的帐号注册到我们的测试帐号列表里面,因此你无法使用Demo授权你的帐号并获取资料。      我们并不建议开发者直接使用我们放在ShareSDKDevInfor.xml中的开发者信息,因

yiqicsgo的博客 272

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

上一篇: 关于DialogFragment的一些学习
下一篇: Android特殊字体引入,以及描边和投影
PirateBrook
博客等级 码龄11年 90粉丝 40原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值