BBASMPlugin+authorize.h 7.12 KB
//
//  BBASMPlugin+authorize.h
//  SWAN
//
//  Created by baidu on 05/12/2017.
//  Copyright © 2017 baidu. All rights reserved.
//

#import "BBASMPlugin.h"


#define SWANAuthorizationModule  @"mnp_authorize"

/**
 *  小程序,授权相关
 *
 */
@interface BBASMPlugin (authorize)

#pragma mark - JS API

/**
 * 描  述: 换取authorize code
 * 示  例: baiduboxapp://swanAPI/login?params={"cb":"_bdbox_pjs_465"}&callback=_bdbox_js_470&upgrade=0&oauthType=swan
 * 文  档: http://ft.baidu.com/#/scheme/swan_login
 * 备  注: 实际上不支持搜索框架,只是小程序框架;
 * ********** description ************
 * @name:      login
 * @authority: swanAPI
 * @path:      /login
 * @args:      [{"name": "cb", "value": "string"}, {"name": "timeout", "value": "string="}, {"name": "__plugin__", "value": "string="}, {"name": "force", "value": "boolean="}, {"name": "invokeFrom", "value": "string="}]
 * @config:    {"swan": {"web": {"invoke": "swan.message.url", "handler": "bridge"}, "webdegrade": {"invoke": "swan.message.url", "handler": "bridge"}, "jsc": {"invoke": "swan.method.url", "method": "_naSwan.bridge.postMessage"}}}
 */
- (void)login:(BBASchemeDispatcher *)dispatcher;

/**
 * 描  述: 校验authorize code 绑定状态
 * 示  例: baiduboxapp://swanAPI/checkSession?params={"cb":"_bdbox_pjs_579"}&callback=_bdbox_js_579&upgrade=0&oauthType=swan
 * 文  档: http://ft.baidu.com/#/scheme/swan_checksession
 * 备  注: 实际上不支持搜索框架,只是小程序框架;
 * ********** description ************
 * @name:      checkSession
 * @authority: swanAPI
 * @path:      /checkSession
 * @args:      [{"name": "cb", "value": "string"}]
 * @config:    {"swan": {"web": {"invoke": "swan.message.url", "handler": "bridge"}, "webdegrade": {"invoke": "swan.message.url", "handler": "bridge"}, "jsc": {"invoke": "swan.method.url", "method": "_naSwan.bridge.postMessage"}}}
 */
- (void)checkSession:(BBASchemeDispatcher *)dispatcher;

/**
 * 描  述: 用户授权协议
 * 示  例: baiduboxapp://swanAPI/authorize?params={"scope":"snsapi_userinfo","cb":"_bdbox_pjs_580"}&callback=_bdbox_js_586&upgrade=0&oauthType=swan
 * 文  档: http://ft.baidu.com/#/scheme/swan_authorize
 * 备  注: 实际上不支持搜索框架,只是小程序框架;如果用户已经同意。直接返回该scope;如果用户没有同意。返回scope 为空;如果用户没有选择,则会弹出授权菜单
 * ********** description ************
 * @name:      authorize
 * @authority: swanAPI
 * @path:      /authorize
 * @args:      [{"name": "scope", "value": "string"}, {"name": "cb", "value": "string"}]
 * @config:    {"swan": {"web": {"invoke": "swan.message.url", "handler": "bridge"}, "webdegrade": {"invoke": "swan.message.url", "handler": "bridge"}, "jsc": {"invoke": "swan.method.url", "method": "_naSwan.bridge.postMessage"}}}
 */
- (void)authorize:(BBASchemeDispatcher *)dispatcher;

/**
 * 描  述: 获取用户信息
 * 示  例: baiduboxapp://swanAPI/getUserInfo?params={"cb":"_bdbox_pjs_578"}&callback=_bdbox_js_596&upgrade=0&oauthType=swan
 * 文  档: http://ft.baidu.com/#/scheme/swan_getuserinfo
 * 备  注: 实际上不支持搜索框架,只是小程序框架
 * ********** description ************
 * @name:      getUserInfo
 * @authority: swanAPI
 * @path:      /getUserInfo
 * @args:      [{"name": "cb", "value": "string"}, {"name": "invokeFrom", "value": "string="}, {"name": "__plugin__", "value": "string="}]
 * @config:    {"swan": {"web": {"invoke": "swan.message.url", "handler": "bridge"}, "webdegrade": {"invoke": "swan.message.url", "handler": "bridge"}, "jsc": {"invoke": "swan.method.url", "method": "_naSwan.bridge.postMessage"}}}
 */
- (void)getUserInfo:(BBASchemeDispatcher *)dispatcher;

/**
 * 描  述: 获取电话号码
 * 示  例: baiduboxapp://swanAPI/getPhoneNumber?params={"cb":"_bdbox_pjs_578"}&callback=_bdbox_js_596&upgrade=0&oauthType=swan
 * 文  档: http://ft.baidu.com/#/scheme/swan_getphonenumber
 * 备  注: 实际上不支持搜索框架,只是小程序框架
 * ********** description ************
 * @name:      getPhoneNumber
 * @authority: swanAPI
 * @path:      /getPhoneNumber
 * @args:      [{"name": "cb", "value": "string"},{"name": "invokeFrom", "value": "string="},{"name": "from", "value": "string="}]
 * @config:    {"swan": {"web": {"invoke": "swan.message.url", "handler": "bridge"}, "webdegrade": {"invoke": "swan.message.url", "handler": "bridge"}, "jsc": {"invoke": "swan.method.url", "method": "_naSwan.bridge.postMessage"}}}
 */
- (void)getPhoneNumber:(BBASchemeDispatcher *)dispatcher;

/**
 * 描  述: 获取授权配置
 * 示  例: baiduboxapp://swanAPI/getSetting?params={"cb":"_bdbox_pjs_575"}&callback=_bdbox_js_608&upgrade=0&oauthType=swan
 * 文  档: http://ft.baidu.com/#/scheme/swan_getsetting
 * 备  注: 实际上不支持搜索框架,只是小程序框架
 * ********** description ************
 * @name:      getSetting
 * @authority: swanAPI
 * @path:      /getSetting
 * @args:      [{"name": "cb", "value": "string"}]
 * @config:    {"swan": {"web": {"invoke": "swan.message.url", "handler": "bridge"}, "jsc": {"invoke": "swan.method.url", "method": "_naSwan.bridge.postMessage"}}}
 */
- (void)getSetting:(BBASchemeDispatcher *)dispatcher;

/**
 * 描  述: 获取swanId
 * 示  例: baiduboxapp://swanAPI/getSwanId?params=%7B%22cb%22%3A%22_bdbox_pjs_264%22%7D&callback=_bdbox_js_294&upgrade=0&oauthType=swan
 * 文  档: http://ft.baidu.com/#/scheme/swan_getswanid
 * 备  注: 
 * ********** description ************
 * @name:      getSwanId
 * @authority: swanAPI
 * @path:      /getSwanId
 * @args:      [{"name": "cb", "value": "string"}]
 * @config:    {"swan": {"web": {"invoke": "swan.message.url", "handler": "bridge"}, "jsc": {"invoke": "swan.method.json", "method": "_naSwan.bridge.settingBridge.getSMId"}}}
 */
- (void)getSMId:(BBASchemeDispatcher *)dispatcher;

/**
 * 描  述: 百度百信小程序中需要获取用户实名信息,用以校验用户身份
 * 示  例: baiduboxapp://swanAPI/getRealNameInfo?params={“cb":"_bdbox_pjs_820”}&callback=_bdbox_js_804&upgrade=0
 * 文  档: http://ft.baidu.com/#/scheme/swan_getrealnameinfo
 * 备  注:
 * ********** description ************
 * @name:      baidu.getRealNameInfo
 * @authority: swanAPI
 * @path:      /getRealNameInfo
 * @args:      [{"name": "cb", "value": "string"}, {"name": "invokeFrom", "value": "string="}]
 * @config:    {"swan": {"web": {"invoke": "swan.message.url", "handler": "bridge", "extension" : "boxjs"}, "webdegrade": {"invoke": "swan.message.url", "handler": "bridge", "extension" : "boxjs"}, "jsc": {"invoke": "swan.method.url", "method": "_naSwan.bridge.postMessage", "extension" : "boxjs"}}}
 */
- (void)getRealNameInfo:(BBASchemeDispatcher *)dispatcher;


#pragma mark - not API

/**
 * @brief 获取SWID
 * @param appId appId
 * @param params 调起参数
 * @param isBinding 是否binding
 * @param completion 回调block
 * @return NSdictionary 端能力调用结果
 */
+ (NSDictionary *)executeGetSWIDWithAppId:(NSString *)appId
                                   params:(NSDictionary *)params
                                isBinding:(BOOL)isBinding
                               completion:(void (^)(NSDictionary *data))completion;

@end