贴吧助手web版

 找回密码
 
搜索
查看: 4611|回复: 0

百度贴吧API接口,SDK安卓版(附接口说明)

[复制链接]
     紫钻仅向指定用户开放  
  • TA的每日心情
    得意
    2023-9-10 11:28
  • 签到天数: 1303 天

    [LV.10]以坛为家III

    753

    主题

    1726

    帖子

    1716

    积分

    管理员

    Rank: 15Rank: 15Rank: 15Rank: 15

    金币
    4324

    接口达人工具作者土豪之星

    发表于 2017-3-2 08:39:59 | 显示全部楼层 |阅读模式
    目录
    1. 百度贴吧单吧SDK简介1.1 目的
    让第三方移动应用能便捷地嵌入百度贴吧单吧服务
    1.2 支持平台
    Android 2.1及以上
    1.3. 集成方式
    library工程方式
    2. 单吧SDK功能
    访问贴吧frs(贴子列表)页,pb(贴子详情)页;
    发表主题贴与吧友进行讨论,回复吧友的贴子;
    查看吧友互动消息;
    3. SDK组成
    单吧SDK是以lib库的方式对外提供服务的,它的主要组成包括一些libs库和资源文件:
    file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wps7049.tmp.jpg
    其中android-support-v4.jar的版本是r4,如有重合,应保证保留r4以上版本。
    4. SDK使用方式
    使用单吧SDK,需要添加对SDK工程的引用,如下图:
    file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wps704A.tmp.jpg
    添加完引用后,需要将SDK工程的AndroidManifest.xml文件中的部分代码添加到自身APP的AndroidManifest.xml文件中,包括如下:
    注册Activity
    <activity
          android:name="com.baidu.tieba.album.AlbumActivity"
          android:configChanges="orientation|keyboardHidden|navigation"
          android:screenOrientation="portrait" />
    <activity
          android:name="com.baidu.tieba.frs.FrsFragmentActivity"
          android:configChanges="orientation|keyboardHidden|navigation"
          android:screenOrientation="portrait"
          android:windowSoftInputMode="adjustResize|stateHidden" >
          <intent-filter>
          <action android:name="android.intent.action.MAIN" />
          </intent-filter>
    </activity>
    <activity
        android:name="com.baidu.tieba.pb.main.PbFragmentActivity"
        android:configChanges="orientation|keyboardHidden|navigation"
        android:screenOrientation="portrait"
        android:windowSoftInputMode="adjustResize|stateHidden" >
        <intent-filter>
        <action android:name="android.intent.action.MAIN" />
    </intent-filter>
    </activity>
    <activity
       android:name="com.baidu.tieba.image.ImageViewerActivity"
       android:configChanges="orientation|keyboardHidden|navigation"
       android:process=":remote" >
    </activity>
    注册service
    <service
        android:name="com.baidu.tieba.service.ClearTempService"
        android:enabled="true"
        android:process=":remote" >
        <intent-filter>
           <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </service>
    <service
        android:name="com.baidu.tieba.service.TiebaSyncService"
        android:enabled="true" >
        <intent-filter>
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </service>
    <service
         android:name="com.baidu.tieba.FileDownloader"
         android:enabled="true" >
         <intent-filter>
               <category android:name="android.intent.category.DEFAULT" />
         </intent-filter>
    </service>
    <service
         android:name="com.baidu.tieba.service.TiebaActiveService"
         android:enabled="true" >
         <intent-filter>
               <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </service>
    <service            android:name="com.baidu.tbadk.core.service.TiebaPrepareImageService"
    android:enabled="true"
    android:process=":remote" >
    <intent-filter>
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
    </service>
    <service
          android:name="com.baidu.tbadk.core.diskCache.ImagesInvalidService"
          android:enabled="true"
          android:process=":remote" >
    </service>
    <service android:enabled="true"         android:name="com.baidu.tieba.service.TiebaFullUpdateService"
              android:process=":remote">  
            <intent-filter>  
                    <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>  
    </service>
    注册receiver
    <receiver android:name="com.baidu.tbadk.core.diskCache.ImagesInvalidReceiver" >
    </receiver>
    <receiver
    android:name="com.baidu.tieba.service.SignAlertReceiver"
    android:enabled="true" >
    <intent-filter>
         <action android:name="com.baidu.tieba.broadcast.signalert" />
         <data android:scheme="tieba_sign" />
    </intent-filter>
    </receiver>
    <receiver         android:name="com.baidu.tieba.service.SyncLoginoutReceiverFromRemote" >
    <intent-filter>
    <action android:name="com.baidu.tiebadanba.broadcast.syncLoginFromRemote" />
    <action android:name="com.baidu.tiebadanba.broadcast.syncLogoutFromAS" />
    </intent-filter>
    </receiver>
    <receiver
       android:name="com.baidu.tieba.service.SyncLoginReceiverForAs"
       android:process=":remote" >
    <intent-filter>
    <action android:name="com.baidu.tiebadanba.broadcast.syncLoginFromAS" />
    </intent-filter>
    </receiver>
    <receiver
    android:name="com.baidu.tieba.service.SyncLogoutReceiverForAs"
    android:process=":remote" >
    <intent-filter>
    <action android:name="com.baidu.tiebadanba.broadcast.syncLogoutFromAS" />
    </intent-filter>
    </receiver>
    权限需求:
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" >
    </uses-permission>
    <uses-permission android:name="android.permission.INTERNET" >
    </uses-permission>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" >
    </uses-permission>
    <uses-permission android:name="android.permission.CAMERA" >
    </uses-permission>
    <uses-permission android:name="android.permission.VIBRATE" >
    </uses-permission>
    <uses-permission android:name="android.permission.READ_PHONE_STATE" >
    </uses-permission>
    <uses-permission android:name="android.permission.BROADCAST_STICKY" />
    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    5、接口说明:
    接口统一封装到com.baidu.tiebasdk.TiebaSDK类中。
    其中(1),(2)必须在APPApplication里初始化。
    1TiebaSDK.init(Application app);
    初始化方法,需要在贴吧SDK所运行进程调用,完成初始化操作。
    (2)  TiebaSDK.setFrom(String from)
    设置渠道名称。from为标识APP唯一性的英文字符串,例如:bdGame
    (3) TiebaSDK.setImageMaxUsedMemoryInMB(int maxUseMemoryInMB, Context context)
    设置SDK图片占用的内存大小,防止应浏览较多图片没有及时释放内存导致OM,单位为MB,如果不调用此方法内部默认最大为10M
    (4)  TiebaSDK.openBar(Context context ,String barName)
    全屏方式打开某个吧,需要在init函数之后调用。
    (5) TiebaSDK.openBar(FragmentActivity activity, int containerId, String barName)
    自定义显示宽高的方式打开某个吧,需要在init函数之后调用,其中activity代表贴吧的Fragment Attach到的activitycontainerIdactivity布局中fragmentid
    (6) TiebaSDK.openThread(Context context, String threadId)
    打开贴子页面,需要在init函数之后调用,threadId为贴子的id
    (7) Tieba.getBarData(String bar, boolean hasGoodOnly, int pn, int rn)
    获取某个吧的贴子数据.其中hasGoodOnly表示是否只取精华贴,pn表示页数,rn表示条数
    6、账号互通
    贴吧SDK可以和使用百度Pass账号体系的应用进行同步登录/登出。 原理是使用广播来共享bdussptoken。在双方中任何一方中,用户登录/登出成功之后,需要发送一个预先定义好的广播来通知另一方更新登录状态,接受方使用广播出来的bdussptoken进行验证,如果成功则在接受方也有同样的登录用户。
    另外有一点需要注意的是,对于有用户名的账号,需要把用户名也通过广播发送过来,因为贴吧的很多操作都需要用户有用户名才能正常使用,当然如果用户没有用户名也没有关系,贴吧SDK会引导用户填写一个用户名。
    贴吧提供了两个简单的方法来发送广播。
    (8) TiebaSDK.syncLogin(String name, String bduss, String ptoken, Context context)
      广播登录,传入用户名,bdussptoken
    (9) TiebaSDK.syncLogout(Context context)
    广播登出
    7、注意事项
    1.对原app影响
    集成贴吧SDK之后,原APP的APK文件会增大2.7M。
    2. 自定义屏幕宽高设置策略
    由于自定义屏幕框情况下,用户可通过限制宽高控制显示界面的大小,建议宽 >= 屏幕宽度的70%,高度 >= 屏幕高度的10%
    3. 半屏特殊策略
    Activity需要 extends FragmentActivity ,并且按照Demo中的方式,重写onActivityResult方法和onKeyDown方法。【详见Demo
    [size=12.0000pt]4. 获取贴子数据的返回结果
    全部贴子/精华贴子列表(按时间排序)返回结果是json串,需自行对其进行解析。
            /**
         * 分页获取吧贴子数据
         * @param bar 吧名
         * @param hasGoodOnly 是否只取精华贴
         * @param pn 页数
         * @param rn 条数
         * @return json数据
         */
    public static String getBarData(String bar, boolean hasGoodOnly, int pn, int rn)
    返回结果(json
    {
        error_code      uint32_t   //错误号
        error_msg       string     //错误信息
        forum:{    //吧信息
            id              uint32_t   //吧名
            name            string     //ID
            is_exists       uint32_t   //是否能访问
            member_num      uint32_t   //会员
            thread_num      uint32_t   //主题贴数,如果是明星吧,返回明星吧的累计发贴数
            post_num        uint32_t   //回复贴数
            avatar          string     //吧头像地址
            slogan          string     //吧简介
        }
        user:{    //用户信息
            is_login        uint32_t   //是否登录
            id              uint32_t   //用户ID
            name            string     //用户名
            name_show       string     //认证用户名称
            portrait        string     //头像串
            type            uint32_t   //0为匿名用户,1为登录用户,2为认证用户
            userhide        uint32_t   //用户是否被屏蔽,1表示屏蔽
            no_un           uint32_t   //用户是否无U用户  10不是
        }
        thread_list[]:{    //实际展示的主题list
            id              uint32_t   //主题ID
            title           string     //标题
            reply_num       uint32_t   //回贴数
            last_time_int   uint32_t   //最后回复时间时间戳
            is_top          uint32_t   //置顶
            is_global_top   uint32_t   //全局运营置顶贴
            is_good         uint32_t   //加精
            is_pic          uint32_t   //老图片贴
            is_notice       uint32_t   //1:全吧公告贴
            is_ntitle       uint32_t   //是否是无标题贴,1是,0
            is_membertop    uint32_t   //是否是会员置顶贴
            first_post_id   uint32_t   //首楼的post_id
            title_link      string     //公告贴链接
            author          string     //用户名
            abstract[]:{    //摘要
                type            uint32_t   //文本类型:0普通文本;3图片
                text            string     //摘要文本
            }
            media[]:{    //摘要图片等
                type            uint32_t   //多媒体类型
                small_pic       string     //小图片
                big_pic         string     //大图片
                src_pic         string     //pb图片
                water_pic       string     //瀑布流图片
            }
        }
        page:{    //翻页信息
            total_count     uint32_t   //总数
            total_page      uint32_t   //总页数
            page_size       uint32_t   //每页条数
            current_page    uint32_t   //当前页码
            offset          uint32_t   //数据偏移量
            has_prev        uint32_t   //是否有前一页
            has_more        uint32_t   //是否有下一页
        }
        anti:{    //发贴权限信息
            tbs             string     //发贴tbs
            ifpost          uint32_t   //是否允许发贴
        }
    }
    5此版本不支持横竖屏切换
    如果已经打开贴吧的页面,此时进行横竖屏切换会导致页面数据加载失败,或对应的点击事件错位。
    api demo  和sdk下载:
    游客,如果您要查看本帖隐藏内容请回复




    上一篇:2017年3月2日签到记录贴
    下一篇:百度贴吧API接口,SDK,IOS版(附接口说明)
    喵星人贴吧助手你值得拥有
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 |

    本版积分规则

    快速回复 返回顶部 返回列表