文档章节

开发者平台信息应用申请

xiaoge2016
 xiaoge2016
发布于 01/02 17:47
字数 1309
阅读 65
收藏 0

一、开放平台

1.web端

(1)淘宝开放平台

http://open.taobao.com/

注册淘宝账号,关联实名认证的支付宝账号,并进行实人认证

在控制台-服务发布中点击创建新应用

选择需要的应用标签,进行申请,这里以百川无线应用为例

申请时,会让注册百川账号,进行内容迁移

进入阿里百川,创建应用,app地址最好写正式的,不然后面还要重新下载

点击左侧的API申请,选择刚创建的应用

点击我的产品后台-开通百川电商sdk和云账号

这时返回淘宝开发者平台-应用管理,就能看到相应信息

点击应用管理-设置回调地址

http://127.0.0.1:8000/login/taobao-t

已经获得app_key和app_secret

点击sdk下载,解压(本项目中采用的是social_django三方登录库,不用这一步)

三方设置——阿里百川文档:https://www.kancloud.cn/moxiuxun/taoke_app/709080

 

2.移动应用

(1)QQ互联

已经创建过网站应用的,在移动应用里点击关联腾讯开放平台

填写网站应用的AppID和AppKey

 

未完,待续

 

二、问题解决

1.三方平台中如果username/nickname为中文时,用django自带的用户模型存储,会出现不规则乱码,影响使用

解决思路:Django-1.10支持中文用户注册登录

找到自定义用户模型扩展继承的AbstractUser类

位置:虚拟环境下\Lib\site-packages\django\contrib\auth\models.py

说明:six.PY3 返回一个表示当前运行环境是否为python3的boolean值

发现调用了两个大类:UnicodeUsernameValidator和ASCIIUsernameValidator

进入UnicodeUsernameValidator类

修改定义的规则

regex = r'^[\S.@+-]+$'

 

三、开放平台文档/接口工具

1.平台文档

微博:https://open.weibo.com/wiki/%E5%BE%AE%E5%8D%9AAPI

QQ:http://wiki.open.qq.com/wiki/%E3%80%90QQ%E7%99%BB%E5%BD%95%E3%80%91%E6%96%87%E6%A1%A3%E8%B5%84%E6%BA%90

微信:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&lang=zh_CN

(需要审核才能申请开通调用用户信息接口-挺麻烦的)

淘宝:http://open.taobao.com/doc.htm?docId=102635&docType=1

百度:http://developer.baidu.com/wiki/index.php?title=docs/oauth

github:https://developer.github.com/v3/oauth_authorizations/

开源中国:https://www.oschina.net/openapi/docs

蚂蚁金服:https://openhome.alipay.com/developmentDocument.htm

优酷土豆:https://doc.open.youku.com/?docid=483

爱奇艺:http://open.iqiyi.com/

 

 

2.接口管理工具

eoLinker:[https://www.eolinker.com]( https://s.growingio.com/gNKZYz),必须说的是 eoLinker 开源免费的。

一些产品的开源项目和链接:
开源支持:[https://www.eolinker.com/#/os/download]( https://www.eolinker.com/#/os/download)
Github:[https://github.com/eolinker]( https://github.com/eolinker)
码云:[https://gitee.com/eoLinker-API-Management]( https://gitee.com/eoLinker-API-Management)
Coding:[https://coding.net/u/eolinker/project]( https://coding.net/u/eolinker/project)
Blog:[http://blog.eolinker.com]( http://blog.eolinker.com )
视频教程:[http://blog.eolinker.com/#/course/]( http://blog.eolinker.com/#/course/)

 

3.其他文档

1. 微信硬件设备开发文档: http://iot.weixin.qq.com/index.html

2. 微信-蓝牙开发demo: http://iot.weixin.qq.com/document-4_1.html

3. 申请微信公众平台接口测试账号: http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login

4. 微信公众平台开发文档: http://mp.weixin.qq.com/wiki/home/index.html

5. 微信JS-SDK开发的Demo: http://demo.open.weixin.qq.com/jssdk/

6. 微信JS-SDK开发文档: http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html

 

四、social_django添加三方登录代码

1.百度

# coding:utf-8
"""
注意:登录可成功,退出时 清除session还是有残留信息
Baidu OAuth2 backend, docs at:
    http://developer.baidu.com/wiki/index.php?title=docs/oauth
"""
from .oauth import BaseOAuth2
class BaiduOAuth2(BaseOAuth2):
    """Baidu OAuth authentication backend"""
    name = 'baidu'
    ID_KEY = 'uid'
    AUTHORIZATION_URL = 'http://openapi.baidu.com/oauth/2.0/authorize'
    ACCESS_TOKEN_URL = 'https://openapi.baidu.com/oauth/2.0/token'
    ACCESS_TOKEN_METHOD = 'POST'
    REDIRECT_STATE = False
    EXTRA_DATA = [
        ('userid', 'userid'),
        ('username', 'username'),
        ('portrait', 'portrait'),
        ('sex', 'sex')
    ]

    def get_user_details(self, response):
        """Return user details from Baidu.
        """
        username = response.get('username')
        return {'username': username,
                'first_name': username}

    def get_uid(self, access_token):
        """Return uid by access_token"""
        data = self.get_json(
            'https://openapi.baidu.com/rest/2.0/passport/users/getLoggedInUser',
            method='POST',
            params={'access_token': access_token}
        )
        return data['uid']

    def user_data(self, access_token, *args, **kwargs):
        uid = self.get_uid(access_token)
        response = self.get_json(
            'https://openapi.baidu.com/rest/2.0/passport/users/getInfo', params={
                'access_token': access_token,
            }
        )
        response['uid'] = uid
        return response

baidu.py

2.淘宝修改

# 自定义补充
class TAOBAOAuth2(BaseOAuth2):
    """Taobao OAuth authentication mechanism"""
    name = 'taobao'
    ID_KEY = 'taobao_open_uid'

    ACCESS_TOKEN_METHOD = 'POST'
    AUTHORIZATION_URL = 'https://oauth.taobao.com/authorize'
    ACCESS_TOKEN_URL = 'https://oauth.taobao.com/token'

    EXTRA_DATA = [
        ('taobao_user_id', 'taobao_user_id'),
        ('taobao_user_nick', 'taobao_user_nick'),
        ('access_token', 'access_token'),
        ('token_type', 'token_type')
    ]

    def user_data(self, access_token, *args, **kwargs):
        """Return user data provided"""
        try:
            return self.get_json('http://gw.api.taobao.com/router/rest', params={
                'method': 'taobao.user.get',
                'fomate': 'json',
                'v': '2.0',
                'access_token': access_token
            })
        except ValueError:
            return None

    def get_user_details(self, response):
        """Return user details from Taobao account"""
        fullname, first_name, last_name = self.get_user_names(
            response.get('name')
        )
        username = response.get('taobao_user_nick')
        return {
            'username': username,
            'first_name': first_name,
        }

taobao.py

说明:

调用环境 服务地址(HTTP) 服务地址(HTTPS)
沙箱环境 http://gw.api.tbsandbox.com/router/rest https://gw.api.tbsandbox.com/router/rest
正式环境 http://gw.api.taobao.com/router/rest https://eco.taobao.com/router/rest
海外环境 http://api.taobao.com/router/rest https://api.taobao.com/router/rest

3.开源中国

# coding:utf-8
"""
Oschina OAuth2 backend, docs at:
    https://www.oschina.net/openapi/docs
"""
from .oauth import BaseOAuth2

class OschinaOAuth2(BaseOAuth2):
    """Oschina OAuth authentication backend"""
    name = 'oschina'
    ID_KEY = 'uid'
    AUTHORIZATION_URL = 'https://www.oschina.net/action/oauth2/authorize'
    ACCESS_TOKEN_URL = 'https://www.oschina.net/action/openapi/token'
    ACCESS_TOKEN_METHOD = 'POST'
    REDIRECT_STATE = False
    EXTRA_DATA = [
        ('name', 'username'),
        ('portrait', 'portrait'),
        ('gender', 'gender')
    ]

    def get_user_details(self, response):
        """Return user details from Oschina.
        """
        username = response.get('name')
        return {'username': username,
                'first_name': username}

    def user_data(self, access_token, response=None, *args, **kwargs):
        """Return user data"""
        user_data = self.get_json(
            'https://www.oschina.net/action/openapi/my_information',
            params={'access_token': access_token}
        )
        return user_data

 

 

五、参考文档:

1.Django-1.10支持中文用户注册登录:https://www.cnblogs.com/dribs/p/8376040.html

2.求推荐一个开源的 API 文档管理系统:https://www.v2ex.com/t/106648

3.bilibili开放平台相关:https://www.helplib.com/c/mutia_127096

© 著作权归作者所有

xiaoge2016
粉丝 13
博文 210
码字总数 215539
作品 0
西安
私信 提问
支付宝APP支付申请配置过程详解

第一步:你需要申请一个支付宝商家账户账号,登陆之后进入产品中心,进行APP支付产品接入,填写相关资料,等待审核。 第二步:进行APP支付申请信息完善 第三步:进入蚂蚁金服开放平台进行开发...

Code辉
2018/12/13
297
0
胖纸夏天/wx-connect

wx-connect 基于及实现的微信公众平台接口开发框架,可用于快速构建微信公众平台接口应用。 var wxConnect = require('wx-connect');var app = wxConnect({appToken: ''}) app.text(functio......

胖纸夏天
2015/01/16
0
0
现在是成为Tizen开发者的最佳时机

上海Tizen开发者峰会现已开放注册! 不容错过!上海Tizen开发者峰会将于2014年10月20日-21日在全新的上海宝华万豪酒店盛大开幕。该技术活动是Tizen开发者大会的小规模区域性峰会。同往届一样...

Tizen_TDS
2014/10/15
575
3
Android之应用市场排行榜、上架、首发

文章大纲 一、应用市场排行榜介绍 二、应用市场上架介绍 三、应用市场首发介绍 四、参考文档 一、应用市场排行榜介绍   iiMedia Research(艾媒咨询)权威发布《2017-2018中国移动应用商店市...

故事爱人
04/09
0
0
app分享功能开发

最近在开发一个社交平台的app需要用到分享功能,本来想自己开发的,在网上花了很长时间查了很多教程结果却不尽人意,无意中看到还有类似的开源组件友推,结合自己的开发经验,把一些集成步骤...

我要编程
2014/08/12
192
5

没有更多内容

加载失败,请刷新页面

加载更多

刚哥谈架构 (二) 我眼中的架构师

之前在公司,有小伙伴在向别人介绍我的时候,经常会有人这么说:“刚哥是我们的architcture”,如果来人是老外,心中一定是一惊,心中暗叹,“这位匪首看上去貌不惊人,难道已经做到了架构和...

naughty
50分钟前
5
0
OSChina 周日乱弹 —— 别问,问就是没空

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @tom_tdhzz :#今日歌曲推荐# 分享容祖儿/彭羚的单曲《心淡》: 《心淡》- 容祖儿/彭羚 手机党少年们想听歌,请使劲儿戳(这里) @wqp0010 :周...

小小编辑
今天
126
4
golang微服务框架go-micro 入门笔记2.1 micro工具之micro api

micro api micro 功能非常强大,本文将详细阐述micro api 命令行的功能 重要的事情说3次 本文全部代码https://idea.techidea8.com/open/idea.shtml?id=6 本文全部代码https://idea.techidea8....

非正式解决方案
今天
5
0
Spring Context 你真的懂了吗

今天介绍一下大家常见的一个单词 context 应该怎么去理解,正确的理解它有助于我们学习 spring 以及计算机系统中的其他知识。 1. context 是什么 我们经常在编程中见到 context 这个单词,当...

Java知其所以然
昨天
5
0
Spring Boot + Mybatis-Plus 集成与使用(二)

前言: 本章节介绍MyBatis-Puls的CRUD使用。在开始之前,先简单讲解下上章节关于Spring Boot是如何自动配置MyBatis-Plus。 一、自动配置 当Spring Boot应用从主方法main()启动后,首先加载S...

伴学编程
昨天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部