以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [注意]公众号详情授权有彩蛋。。。。  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=101302)

--  作者:18523982317
--  发布时间:2017/5/27 20:39:00
--  [注意]公众号详情授权有彩蛋。。。。
公众号详情授权,有错误,帮助的地址http://www.foxtable.com/mobilehelp/scr/0236.htm

1、 ul  "https://api.weixin.qq.com/sns/auth?access_token={0}&openid={1}"
                \'根据openidaccesstoken获取用户详情,注意这里这个accesstoken不是普通accesston,只能用于网页授权
                hc = New HttpClient(CExp(ul, OpenId, jo("access_token")))
很明显 hc = New HttpClient(CExp(ul, OpenId, jo("access_token")))合成地址的opnid 和 token写反了,然后报错40001,提示说token不是最后一个token
2、 ul  "https://api.weixin.qq.com/sns/auth?access_token={0}&openid={1}"
                \'根据openidaccesstoken获取用户详情,注意这里这个accesstoken不是普通accesston,只能用于网页授权
                hc = New HttpClient(CExp(ul, OpenId, jo("access_token")))
                jo = jo.Parse(hc.GetData)
                If jo("errcode") = "0" Then
                    UserName = jo("nickname")
                    dr = DataTables("WXUsers").AddNew()
                    Dim nms() As String = {"openid","nickname","sex","city","country","province","headimgurl"} \'""
                    For Each nm As String In nms
                        dr(nm) = jo(nm)
                    Next
                    dr.Save
                
Else
                    e.WriteString(jo.ToString) \'在用户浏览器显示错误信息
                    
Return

                End If
            End If
        End If
        e.AppendCookie("username",UserName) 
\'
用户名和openid存储在Cookie
        e.AppendCookie("openid",OpenID)


按道理,才关注公众号的用户,会进入ul合成的地址去授权,如果jo(errcode) = 0 就去查找数据库里有用户没,如果没用户就建立一行保存用户的公开信息,但是我实验了很多次都发现新建行了,但是数据为空。。。 其次是报错,未将对象xxx实力的错误,我只能把e.appendcookie这两行代码删了,不报错了,用户数据还是为空,我直接在浏览器上显示了jo.ToString()发现浏览器上只有errcode:0,errmsg:ok,我怀疑是不是授权地址错了哟???


求解,我网页是小白,不太懂 该怎么去找授权地址?帮助代码改怎么改?

--  作者:18523982317
--  发布时间:2017/5/27 20:54:00
--  
我仔细看了下接口文档,2问题是授权地址必须加www。。。。测试中
--  作者:18523982317
--  发布时间:2017/5/27 21:26:00
--  
果真如我猜测的那样,新用户关注,如果wxuers表里没有该用户的openid,那么会根据token获取详情,但是帮助里的获取详情的ul是"https://api.weixin.qq.com/sns/auth?access_token={0}&openid={1}",这是错的,这是验证token是否有效的地址,真正获取用户详情的地址是https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN 
--  作者:有点色
--  发布时间:2017/5/28 10:35:00
--  

 帮助文档没有错!你在看哪里的?

 

http://www.foxtable.com/mobilehelp/scr/0185.htm

 


--  作者:18523982317
--  发布时间:2017/5/29 9:11:00
--  
0236这个帮助文档,不信嘛就去看嘛。。。。
--  作者:有点色
--  发布时间:2017/5/29 9:41:00
--  
 嗯嗯,是的,只是请求地址【拷贝】错了,其余的代码都不需要改。
--  作者:18523982317
--  发布时间:2017/5/29 10:28:00
--  
2个错误,上面openid和code也写反了
--  作者:有点色
--  发布时间:2017/5/29 11:13:00
--  
以下是引用18523982317在2017/5/29 10:28:00的发言:
2个错误,上面openid和code也写反了

 

地址拷贝过来,如果是写反的,也可以。