有赞新零售社区

发帖
API使用问题»小白求助如何获取CODE

小白求助如何获取CODE

chengyifan 2018-09-22 3984 浏览 12 评论 | 只看楼主 [打印]
String state ="teststate";
String url="https://open.youzan.com/oauth/authorize";
@RequestMapping(value="/",method= RequestMethod.GET)
public  void test(){
    HttpClient httpClient = new DefaultHttpClient();
    HttpClient.Params params = HttpClient.Params.custom()
            .add("client_id", "***********")
            .add("response_type", "code")
            .add("state", "state")
            .add("redirect_uri","http://youzanyun.com/callback")
            .build();
    //.setContentType(ContentType.APPLICATION_FORM_URLENCODED)
String resp = httpClient.post(url, params);
    //String resp =httpClient.get(url,params);
System.out.println(resp);
    System.out.println(state);
    //System.out.println(httpClient.get(url));
}

请问这样写是不是有错误?
运行后得到的是Unsupported Media Typeteststate
请问应该怎么改?求各位大神帮助!!!
本帖最后由 chengyifan 于 2018-9-21 16:51 编辑
用手机打开
收藏 ··· 回复
    如果您获取code这一步没有问题只是换取token报错请参考下面代码测试一下,有疑问再追问
    1. public class Test {
    2.     public static void main(String[] args) throws Exception {
    3.         HttpClient httpClient = new DefaultHttpClient();
    4.         HttpClient.Params params = HttpClient.Params.custom()
    5.               .add("client_id", "填写您的client_id")  
    6.               .add("client_secret", "填写您的client_secret")                    
    7.               .add("grant_type", "authorization_code") //获取token默认值           
    8.               .add("code","填写您的code")
    9.               .add("redirect_uri","填写您的回调地址")
    10.         .setContentType(ContentType.APPLICATION_FORM_URLENCODED).build();
    11.         String resp = httpClient.post("https://open.youzan.com/oauth/token", params);
    12.         System.out.println(resp);
    13.     }
    14. }
    复制代码
    注意这个方式使用工具型应用使用,如果你是自用型应用请参考该链接对接:https://open.youzan.com/docs/guide/3399/3414

      chengyifan 青铜   2018-09-22 | 只看该作者
      有赞-导演 发表于 2018-9-21 17:32
      如果您获取code这一步没有问题只是换取token报错请参考下面代码测试一下,有疑问再追问
      注意这个方式使用工 ...


      你好,现在我是没有获取到CODE,使用client_id后返回的是
      <!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="renderer" content="webkit"><meta name="referrer" content="always"><meta name="viewport" content="width=device-width,user-scalable=no,initial-scale=1,maximum-scale=1,minimum-scale=1"><title>有赞店铺授权 - 做生意,用有赞</title><meta name="keywords" content="有赞,微信商城,粉丝营销,微信商城运营"><meta name="description" content="有赞是帮助商家在微信上搭建微信商城的平台,提供店铺、商品、订单、物流、消息和客户的管理模块,同时还提供丰富的营销应用和活动插件。"><link rel="icon" href="//img.yzcdn.cn/youzanyun/favicon.ico">  <link rel="stylesheet" href="//b.yzcdn.cn/static/build/www/styles/common/base_fea7a03113f1ec0fbb324c2c766edfd7.css" media="screen">    <link rel="stylesheet" href="//b.yzcdn.cn/static/build/www/styles/pages/oauth/authorize_25bdd19ae40434c2510d96dfd2f3dba2.css" media="screen">  

      这样一个登录页面,请问是否是怎么回事呢?

        chengyifan 青铜   2018-09-22 | 只看该作者
        有赞-导演 发表于 2018-9-21 17:32
        如果您获取code这一步没有问题只是换取token报错请参考下面代码测试一下,有疑问再追问
        注意这个方式使用工 ...



        如果我用我私人账号登录就会在页面上显示   

        参数client_id非法,错误码 41000
        请联系开发者确认授权链接信息是否正确

          chengyifan 发表于 2018-9-21 17:58
          如果我用我私人账号登录就会在页面上显示   

          参数client_id非法,错误码 41000


          提供你的token 私信发我一下方便判断你的问题

            chengyifan 青铜   2018-09-24 | 只看该作者
            lass="quote 15">
            有赞-导演 发表于 2018-9-21 20:50
            提供你的token 私信发我一下方便判断你的问题


            你好,不好意思打扰你了,想给您发私信但现在显示等级不够。。。
            现在我获取Token时显示的是  "error_description":"跳转链接非法","error":"41001"请问这是什么错误?

              chengyifan 发表于 2018-9-23 17:41
              你好,不好意思打扰你了,想给您发私信但现在显示等级不够。。。
              现在我获取Token时显示的是  "error_desc ...


              这个说明你的授权拼接链接地址不对,需要你提供一下你的授权链接看一下

                chengyifan 青铜   2018-09-25 | 只看该作者
                提示: 该帖被管理员或版主屏蔽

                  chengyifan 青铜   2018-09-25 | 只看该作者
                  有赞-导演 发表于 2018-9-25 10:52
                  这个说明你的授权拼接链接地址不对,需要你提供一下你的授权链接看一下 ...


                  你好,代码如下,其中code是获取到的code;
                  是使用的工具型。

                  HttpClient httpClient = new DefaultHttpClient();
                          HttpClient.Params params = HttpClient.Params.custom()

                                  .add("client_id", "*******************")
                                  .add("client_secret", "********************")
                                  .add("grant_type", "authorization_code")
                                  .add("code",code)
                                  .add("redirect_uri","https://www.fotor.com.cn/templates?hmsr=%E6%9C%89%E8%B5%9E&hmpl=&hmcu=&hmkw=&hmci=")
                                  .setContentType(ContentType.APPLICATION_FORM_URLENCODED).build();
                          String resp = httpClient.post(url, params);
                          System.out.println(resp);
                          if (StringUtils.isBlank(resp) || !resp.contains("access_token")) {
                              throw new RuntimeException(resp);
                          }
                          return JsonUtils.toBean(resp, new TypeReference<OAuthToken>() {
                          });

                    chengyifan 发表于 2018-9-25 13:45
                    你好,代码如下,其中code是获取到的code;
                    是使用的工具型。


                    您的授权地址不要带自定义参数,您使用这个地址就可以换取https://www.fotor.com.cn/templates  这个地址?后面的参数就不要带了。然后再测试换取。有疑问在追问

                      chengyifan 青铜   2018-09-26 | 只看该作者
                      有赞-导演 发表于 2018-9-25 14:45
                      您的授权地址不要带自定义参数,您使用这个地址就可以换取https://www.fotor.com.cn/templates  这个地址 ...


                      非常感谢,已经解决!

                        12跳至
                        您需要登录后才可以回帖 登录 | 立即注册

                        本版积分规则

                        复制链接
                        新浪微博
                        QQ空间
                        微信扫码
                        • 回复

                        • 评分

                        客服工作时间是9:00-18:00,客服妹子当前不在线,若不能及时回复请谅解。试试右上角的搜索吧,论坛有丰富的经验贴、公告贴,相信一定能够帮到您~

                        复制成功