android开发新浪微博客户端+完整攻略

android开发新浪微博客户端+完整攻略
android开发新浪微博客户端+完整攻略

android开发我的新浪微博客户端-开篇

开始接触学习android已经有3个礼拜了,一直都是对着android的sdk文档写Tutorials 从Hello World到Notepad Tutorial算是初步入门了吧,刚好最近对微博感兴趣就打算开发个android版本的新浪微博客户端作为练手项目,并且以随笔的方式详细的记录开发的全过程。本人对java语言以及eclipse Ide都是初次应用基本上属于边学边用,做移动设备上的东西也是第一次,总的来说属于无基础、无经验、无天赋的纯三无人员,还请广大同学们多多给予指点。

开发第一件事情,那就是开发工具以及环境,我的配置是Eclipse Helios (3.6.1) + Adroid2.2,具体的环境搭建我就不罗嗦了,google一下一大堆,光博客园里都能搜到很多篇了。

开发第二件事情,既然是开发新浪的微博客户端,那就先去新浪申请微博账号然后登陆后到新浪的开放平台,新浪的开放平台提供的新浪微博对外的api接口,在我的应用中创建一个新的应用获取App Key和App Secret,这2个值后面会有用到先记录下来。在新浪的开放平台中提供了开发文档、SDK、接口测试工具等,本人决定直接通过新浪的Rest Api进行开发并不打算使用新浪提供的SDK,据说新浪提供的java版的SDK并不能直接用来进行android的开发需要进行一定的修改才能使用,只是听说我没有试过不一定准确。

最后在说一下,我准备分为UI和功能两部分分别进行说明讲解,据我自己的情况大部分的时间都花在的UI的设计和实现上了,编码倒反而工作量小多了,所以特别把UI部分分出来讲。

最后还要在说一下,很抱歉上面内容基本上属于废话没有什么实质内容了但是既然是第一篇还是得象征性的交代一下,从下篇开始讲具体的内容。

android开发我的新浪微博客户端-载入页面UI篇(1.1)

本软件设定用户第一个接触到的功能就是页面载入等待功能,这个功能对使用者来说就是一个持续1、2秒钟的等待页面,在用户等待的同时程序做一些必要的检查以及数据准备工作,载入页面分为UI篇和功能篇,从表及里首先是UI的实现,一个软件除功能之外还得有一个光鲜的外表也是非常重要的,尽管本人设计水平一般但是还是亲自操刀用ps先做了一下设计效果图如下:

一、接下来的任务就是在android中实现这样的效果显示,从这个效果的设计分别把图片分成背景、版本号部分、软件名称和图标、作者名称和blog四个部分,按照这样的思路把分别生成4张png的图片,背景部分考虑实现横屏和竖屏切换额外添加一张横屏背景图,然后新建android工程,我这里的名称为MySinaWeibo,android版本勾选2.2,并且创建名为MainActivity的Activity作为整个软件的起始页面,然后把上面的这些图片保存到项目的res/drawable-mdpi文件夹下,关于res目录下的drawable-mdpi、drawable-ldpi,、drawable-hdpi三个文件夹的区别,mdpi 里面主要放中等分辨率的图片,如HVGA (320x480)。ldpi里面主要放低分辨率的图片,如QVGA (240x320)。hdpi里面主要放高分辨率的图片,如WVGA (480x800),FWVGA (480x854)。android系统会根据机器的分辨率来分别到这几个文件夹里面去找对应的图片,在开发程序时为了兼容不同平台不同屏幕,建议各自文件夹根据需求均存放不同版本图片,我这里就不进行这么多的考虑了。

二、完成图片资源的准备后接下就是layout文件的编写, 在res/layout文件夹下新建main.xml文件,这个layout采用LinearLayout控件作为顶层控件,然后用ImageView 控件分别实现版本号图片顶部靠左对齐显示、软件名称和图标图片居中对齐、作者名称和blog图片底部靠右对齐。注意在版本号图片显示ImageView控件下面添加一个RelativeLayout控件作为软件名称和图标图片ImageVIew和作者名称和blog图片ImageView的父控件用来控制居中对齐已经底部对齐的实现,具体代码如下:代码

1.

2.

xmlns:android="https://www.360docs.net/doc/a47202037.html,/apk/res/android"

3.android:id="@+id/layout"

4.android:orientation="vertical"

5.android:layout_width="fill_parent"

6.android:layout_height="fill_parent">

7.

8.android:layout_width="wrap_content"

9.android:layout_height="wrap_content"

10.android:src="@drawable/ver"

11.android:layout_marginTop="15dip"

12.android:layout_marginLeft="15dip">

13.

14.

15.android:layout_width="fill_parent"

16.android:layout_height="fill_parent">

17.

18.android:layout_width="wrap_content"

19.android:layout_height="wrap_content"

20.android:src="@drawable/logo"

21.android:layout_centerInParent="true">

22.

23.

24.

25.android:layout_width="wrap_content"

26.android:layout_height="wrap_content"

27.android:src="@drawable/dev"

28.android:layout_alignParentBottom="true"

29.android:layout_alignParentRight="true"

30.android:layout_marginRight="5dip"

31.android:layout_marginBottom="35dip">

32.

33.

34.

复制代码

三、在ec打开名为MainActivity的Activity源代码文件进行编辑,onCreate部分代码如下:

1.public void onCreate(Bundle savedInstanceState) {

2.super.onCreate(savedInstanceState);

3.setContentView(https://www.360docs.net/doc/a47202037.html,yout.main);

4.}

复制代码

然后运行项目可以在模拟器中显示,上面的几个图片都按照设计的位置和效果进行显示只是整个页面的背景还是黑色的,接下来就是背景部分的显示实现,由于为了实现横竖屏切换显示,背景图的显示采用代码进行控制显示,首先用如下方法获取当前手机是横屏还是竖屏:

1.//获取屏幕方向

2.public static int ScreenOrient(Activity activity)

3.{

4.int orient = activity.getRequestedOrientation();

5.if(orient != ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE && orient !=

ActivityInfo.SCREEN_ORIENTATION_PORTRAIT) {

6.//宽>高为横屏,反正为竖屏

7.WindowManager windowManager = activity.getWindowManager();

8.Display display = windowManager.getDefaultDisplay();

9.int screenWidth = display.getWidth();

10.int screenHeight = display.getHeight();

11.orient = screenWidth < screenHeight ?

ActivityInfo.SCREEN_ORIENTATION_PORTRAIT :

ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE;

12.}

13.return orient;

14.}

复制代码

然后编写一个名为AutoBackground的公共方法用来实现屏幕背景的自动切换,后面的几乎每一个功能页面都需要用到这个方法

1.public static void AutoBackground(Activity activity,View view,int

Background_v, int Background_h)

2.{

3.int orient=ScreenOrient(activity);

4.if (orient == ActivityInfo.SCREEN_ORIENTATION_PORTRAIT) { //纵向

5.view.setBackgroundResource(Background_v);

6.}else{ //横向

7.view.setBackgroundResource(Background_h);

8.}

9.}

复制代码

完成上述两方法后在 MainActivity的onCreate方法中调用AutoBackground方法进行屏幕自动切换:

1.LinearLayout layout=(LinearLayout)findViewById(https://www.360docs.net/doc/a47202037.html,yout);

2.//背景自动适应

3.AndroidHelper.AutoBackground(this, layout, R.drawable.bg_v,

R.drawable.bg_h);

复制代码

到此完成了载入页面的UI部分的实现,测试运行模拟器中查看效果,基本上跟最上面的设计效果图相符,测试效果图如下:

android开发我的新浪微博客户端-载入页面sqlite篇(1.2)

通过上一篇文章(android开发我的新浪微博客户端-载入页面UI篇(1.1))已经完成了载入页面的UI部分的实现,效果如上图,接下来在上面的基础上完成载入页面的功能代码。

首先说明一下新浪微博提供了OAuth和Base OAuth两种认证方式(如果不知道什么是OAuth和Base OAuth请自己google一下恶补,同时接下来的2篇随笔也会对这方面进行详细的说明以及具体实现),本项目是采用OAuth认证方式,采用这种方式就需要有用户的新浪UserID、Access Token、Access Secret这3样东西才能自由便利的调用新浪的开放接口,本项目是这样做的当用户第一次使用软件时进行授权认证获取这3样东西的时候存储到sqlite库中以便用户下次使用时不需要重新进行繁琐的授权认证操作直接从sqlite库中读取出来即可,由于这样的需求载入页面的功能设定是这样:当用户打开软件显示载入页面时开始检查sqlite库中是否已经保存有用户的新浪微博的UserID号、Access Token、Access Secret的记录,如果一条记录都没有那就说明用户是第一次使用本软件那么跳到认证授权页面进行授权认证操作(认证授权功能在接下来的两篇中进行实现讲解)获取这3个值保存到sqlite库中,如果已经包括了记录,那么读取这些记录的UserID号、Access Token、Access Secret值然后根据这3个值调用新浪的api接口获取这些记录对应的用户昵称和用户头像图标等信息。

上面功能设定中涉及到sqlite数据库的创建、数据表的创建、数据记录的添加、数据记录的读取等操作,这里新建名为SqliteHelper.java类文件提供sqlite数据表的创建、更新等,代码如下:

1.public class SqliteHelper extends SQLiteOpenHelper{

2.//用来保存

https://www.360docs.net/doc/a47202037.html,erID、Access Token、Access Secret

4.的表名

5.public static final String TB_NAME="users";

6.public SqliteHelper(Context context, String name, CursorFactory

factory, int version) {

7.super(context, name, factory, version);

8.}

9.//创建表

10.@Override

11.public void onCreate(SQLiteDatabase db) {

12.db.execSQL("CREATE TABLE IF NOT EXISTS "+

13.TB_NAME+"("+

https://www.360docs.net/doc/a47202037.html,erInfo.ID+" integer primary key,"+

https://www.360docs.net/doc/a47202037.html,ERID+" varchar,"+

https://www.360docs.net/doc/a47202037.html,erInfo.TOKEN+" varchar,"+

https://www.360docs.net/doc/a47202037.html,erInfo.TOKENSECRET+" varchar,"+

https://www.360docs.net/doc/a47202037.html,ERNAME+" varchar,"+

https://www.360docs.net/doc/a47202037.html,ERICON+" blob"+

20.")"

21.);

22.Log.e("Database","onCreate");

23.}

24.//更新表

25.@Override

26.public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)

{

27.db.execSQL("DROP TABLE IF EXISTS " + TB_NAME);

28.onCreate(db);

29.Log.e("Database","onUpgrade");

30.}

31.//更新列

32.public void updateColumn(SQLiteDatabase db, String oldColumn, String

newColumn, String typeColumn){

33.try{

34.db.execSQL("ALTER TABLE " +

35.TB_NAME + " CHANGE " +

36.oldColumn + " "+ newColumn +

37." " + typeColumn

38.);

39.}catch(Exception e){

40.e.printStackTrace();

41.}

43.}

复制代码

接下来新建名为DataHelper.java类文件实现用户记录的创建、更新、删除等,代码如下:

1.public class DataHelper {

2.//数据库名称

3.private static String DB_NAME = "mysinaweibo.db";

4.//数据库版本

5.private static int DB_VERSION = 2;

6.private SQLiteDatabase db;

7.private SqliteHelper dbHelper;

8.

9.public DataHelper(Context context){

10.dbHelper=new SqliteHelper(context,DB_NAME, null, DB_VERSION);

11.db= dbHelper.getWritableDatabase();

12.}

13.

14.public void Close()

15.{

16.db.close();

17.dbHelper.close();

18.}

19.//获取users表中的UserID、Access Token、Access Secret的记录

20.public List GetUserList(Boolean isSimple)

21.{

22.List userList = new ArrayList();

23.Cursor cursor=db.query(SqliteHelper.TB_NAME, null, null, null, null,

null, UserInfo.ID+" DESC");

24.cursor.moveToFirst();

25.while(!cursor.isAfterLast()&& (cursor.getString(1)!=null)){

https://www.360docs.net/doc/a47202037.html,erInfo user=new UserInfo();

https://www.360docs.net/doc/a47202037.html,er.setId(cursor.getString(0));

https://www.360docs.net/doc/a47202037.html,er.setUserId(cursor.getString(1));

https://www.360docs.net/doc/a47202037.html,er.setToken(cursor.getString(2));

https://www.360docs.net/doc/a47202037.html,er.setTokenSecret(cursor.getString(3));

31.if(!isSimple){

https://www.360docs.net/doc/a47202037.html,er.setUserName(cursor.getString(4));

33.ByteArrayInputStream stream = new

ByteArrayInputStream(cursor.getBlob(5));

34.Drawable icon= Drawable.createFromStream(stream, "image");

https://www.360docs.net/doc/a47202037.html,er.setUserIcon(icon);

https://www.360docs.net/doc/a47202037.html,erList.add(user);

38.cursor.moveToNext();

39.}

40.cursor.close();

41.return userList;

42.}

43.

44.//判断users表中的是否包含某个UserID的记录

45.public Boolean HaveUserInfo(String UserId)

46.{

47.Boolean b=false;

48.Cursor cursor=db.query(SqliteHelper.TB_NAME, null, https://www.360docs.net/doc/a47202037.html,ERID +

"=" + UserId, null, null, null,null);

49.b=cursor.moveToFirst();

50.Log.e("HaveUserInfo",b.toString());

51.cursor.close();

52.return b;

53.}

54.

55.//更新users表的记录,根据UserId更新用户昵称和用户图标

56.public int UpdateUserInfo(String userName,Bitmap userIcon,String

UserId)

57.{

58.ContentValues values = new ContentValues();

59.values.put(https://www.360docs.net/doc/a47202037.html,ERNAME, userName);

60.// BLOB类型

61.final ByteArrayOutputStream os = new ByteArrayOutputStream();

62.// 将Bitmap压缩成PNG编码,质量为100%存储

https://www.360docs.net/doc/a47202037.html,press(https://www.360docs.net/doc/a47202037.html,pressFormat.PNG, 100, os);

64.// 构造SQLite的Content对象,这里也可以使用raw

65.values.put(https://www.360docs.net/doc/a47202037.html,ERICON, os.toByteArray());

66.int id= db.update(SqliteHelper.TB_NAME, values, https://www.360docs.net/doc/a47202037.html,ERID + "="

+ UserId, null);

67.Log.e("UpdateUserInfo2",id+"");

68.return id;

69.}

70.

71.//更新users表的记录

72.public int UpdateUserInfo(UserInfo user)

73.{

74.ContentValues values = new ContentValues();

75.values.put(https://www.360docs.net/doc/a47202037.html,ERID, user.getUserId());

76.values.put(UserInfo.TOKEN, user.getToken());

77.values.put(UserInfo.TOKENSECRET, user.getTokenSecret());

78.int id= db.update(SqliteHelper.TB_NAME, values, https://www.360docs.net/doc/a47202037.html,ERID + "="

+ user.getUserId(), null);

79.Log.e("UpdateUserInfo",id+"");

80.return id;

81.}

82.

83.//添加users表的记录

84.public Long SaveUserInfo(UserInfo user)

85.{

86.ContentValues values = new ContentValues();

87.values.put(https://www.360docs.net/doc/a47202037.html,ERID, user.getUserId());

88.values.put(UserInfo.TOKEN, user.getToken());

89.values.put(UserInfo.TOKENSECRET, user.getTokenSecret());

90.Long uid = db.insert(SqliteHelper.TB_NAME, UserInfo.ID, values);

91.Log.e("SaveUserInfo",uid+"");

92.return uid;

93.}

94.

95.//删除users表的记录

96.public int DelUserInfo(String UserId){

97.int id= db.delete(SqliteHelper.TB_NAME, https://www.360docs.net/doc/a47202037.html,ERID +"="+UserId,

null);

98.Log.e("DelUserInfo",id+"");

99.return id;

100.}

101.}

复制代码

完成上面的代码后,我们需要在载入页面中调用上面的方法实现sqlite库中是否已经保存有用户的新浪微博的UserID号、Access Token、Access Secret的记录的功能在MainActivity的onCreate方法添加代码:

1.public void onCreate(Bundle savedInstanceState) {

2.super.onCreate(savedInstanceState);

3.setContentView(https://www.360docs.net/doc/a47202037.html,yout.main);

4.

5.......

6.

7.//获取账号列表

8.dbHelper=new DataHelper(this);

9.List userList= dbHelper.GetUserList(true);

10.if(userList.isEmpty())//如果为空说明第一次使用跳到AuthorizeActivity

页面进行OAuth认证

11.{

12.Intent intent = new Intent();

13.intent.setClass(MainActivity.this, AuthorizeActivity.class);

14.startActivity(intent);

15.}

16.else//如果不为空读取这些记录的UserID号、Access Token、Access Secret

17.//然后根据这3个值调用新浪的api接口获取这些记录对应的用户昵称和用户

头像图标等信息。

18.{

19.for(UserInfo user:userList){

20.......

21.}

22.}

23.}

复制代码

关于载入页面的sqlite就说到这里了,下一篇说说OAuth认证实现。

android开发我的新浪微博客户端-OAuth篇(2.1)

本篇说说关于OAuth授权认证的事情,新浪开放api都必须在这个基础上才能调用,所以有必要专门来讲讲,前面的文章中已经提到过关于新浪微博提供了OAuth和Base OAuth 两种认证方式,并且本项目采用OAuth认证方式,至于为什么采用这个OAuth认证而不采用Base OAuth认证原因很简单,自从Twitter只支持OAuth认证方式以来,各大应用都纷纷转向OAuth认证方式,而新浪微博的开放平台也将在近日停止Base OAuth的认证方式。

OAuth的基本概念,OAUTH协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAUTH是安全的。同样新浪微博提供OAuth认证也是为了保证用户账号和密码的安全,在这里通过OAuth建立普通新浪微博用户、客户端程序(我们正在开发的这个android客户端程序)、新浪微博三者之间的相互信任关系,让客户端程序(我们正在开发的这个android

客户端程序)不需要知道用户的账号和密码也能浏览、发布微博,这样有效的保护了用户账号的安全性不需要把账号密码透露给客户端程序又达到了通过客户端程序写微博看微博目的。这个是OAuth的作用。

结合新浪微博的OAuth认证来说说具体的功能实现,首先罗列一下关键字组,下面四组关键字跟我们接下来OAuth认证有非常大的关系。

第一组:(App Key和App Secret),这组参数就是本系列文本第一篇提到的建一个新的应用获取App Key和App Secret。

第二组:(Request Token和Request Secret)

第三组:(oauth_verifier)

第四组:(user_id、Access Token和Access Secret)

新浪微博的OAuth认证过程,当用户第一次使用本客户端软件时,客户端程序用第一组作为参数向新浪微博发起请求,然后新浪微博经过验证后返回第二组参数给客户端软件同时表示新浪微博信任本客户端软件,当客户端软件获取第二组参数时作为参数引导用户浏览器跳至新浪微博的授权页面,然后用户在新浪的这个授权页面里输入自己的微博账号和密码进行授权,完成授权后根据客户端设定的回调地址把第三组参数返回给客户端软件并表示用户也信任本客户端软件,接下客户端软件把第二组参数和第三组参数作为参数再次向新浪微博发起请求,然后新浪微博返回第四组参数给客户端软件,第四组参数需要好好的保存起来这个就是用来代替用户的新浪账号和密码用的,在后面调用api时都需要。从这个过程来看用户只是在新浪微博的认证网页输入过账户和密码并没有在客户端软件里输入过账户和密码,客户端软件只保存了第四组数据并没有保存用户的账户和密码,这样有效的避免了账户和密码透露给新浪微博之外的第三方应用程序,保证 了安全性。

本项目用为了方便开发采用了oauth-signpost开源项目进行OAuth认证开发,新建OAuth.java类文件对OA进行简单的封装,OAuth类主要有RequestAccessToken、GetAccessToken、SignRequest三个方法,第一个方法RequestAccessToken就是上面过程中用来获取第三组参数用的,GetAccessToken方法是用来获取第四组参数用,SignRequest 方法是用来调用api用。由于采用了oauth-signpost开源项目简单了很多。具体代码如下:

1.public class OAuth {

2.private CommonsHttpOAuthConsumer httpOauthConsumer;

3.private OAuthProvider httpOauthprovider;

4.public String consumerKey;

5.public String consumerSecret;

6.

7.public OAuth()

8.{

9.// 第一组:(App Key和App Secret)

10.// 这组参数就是本系列文本第一篇提到的建一个新的应用获取App Key和App

Secret。

11.this("3315495489","e2731e7grf592c0fd7fea32406f86e1b");

12.}

13.public OAuth(String consumerKey,String consumerSecret)

14.{

15.this.consumerKey=consumerKey;

16.this.consumerSecret=consumerSecret;

17.}

18.

19.public Boolean RequestAccessToken(Activity activity,String

callBackUrl){

20.Boolean ret=false;

21.try{

22.httpOauthConsumer = new

CommonsHttpOAuthConsumer(consumerKey,consumerSecret);

23.httpOauthprovider = new

DefaultOAuthProvider("https://www.360docs.net/doc/a47202037.html,/oauth/request_token"

,"https://www.360docs.net/doc/a47202037.html,/oauth/access_token","http://api.t.sina.c https://www.360docs.net/doc/a47202037.html,/oauth/authorize");

24.String authUrl =

httpOauthprovider.retrieveRequestToken(httpOauthConsumer,

callBackUrl);

25.activity.startActivity(new Intent(Intent.ACTION_VIEW,

Uri.parse(authUrl)));

26.ret=true;

27.}catch(Exception e){

28.}

29.return ret;

30.}

31.

32.public UserInfo GetAccessToken(Intent intent){

https://www.360docs.net/doc/a47202037.html,erInfo user=null;

34.Uri uri = intent.getData();

35.String verifier =

uri.getQueryParameter(oauth.signpost.OAuth.OAUTH_VERIFIER);

36.try {

37.httpOauthprovider.setOAuth10a(true);

38.httpOauthprovider.retrieveAccessToken(httpOauthConsumer,verifier);

39.} catch (OAuthMessageSignerException ex) {

40.ex.printStackTrace();

41.} catch (OAuthNotAuthorizedException ex) {

42.ex.printStackTrace();

43.} catch (OAuthExpectationFailedException ex) {

44.ex.printStackTrace();

45.} catch (OAuthCommunicationException ex) {

46.ex.printStackTrace();

47.}

48.SortedSet user_id=

httpOauthprovider.getResponseParameters().get("user_id");

49.String userId=user_id.first();

50.String userKey = httpOauthConsumer.getToken();

51.String userSecret = httpOauthConsumer.getTokenSecret();

https://www.360docs.net/doc/a47202037.html,er=new UserInfo();

https://www.360docs.net/doc/a47202037.html,er.setUserId(userId);

https://www.360docs.net/doc/a47202037.html,er.setToken(userKey);

https://www.360docs.net/doc/a47202037.html,er.setTokenSecret(userSecret);

56.return user;

57.}

58.

59.public HttpResponse SignRequest(String token,String

tokenSecret,String url,List params)

60.{

61.HttpPost post = new HttpPost(url);

62.//HttpClient httpClient = null;

63.try{

64.post.setEntity(new UrlEncodedFormEntity(params,HTTP.UTF_8));

65.} catch (UnsupportedEncodingException e) {

66.e.printStackTrace();

67.}

68.//关闭Expect:100-Continue握手

69.//100-Continue握手需谨慎使用,因为遇到不支持HTTP/1.1协议的服务器或

者代理时会引起问题

70.post.getParams().setBooleanParameter(https://www.360docs.net/doc/a47202037.html,E_EXPECT_

CONTINUE, false);

71.return SignRequest(token,tokenSecret,post);

72.}

73.

74.public HttpResponse SignRequest(String token,String

tokenSecret,HttpPost post){

75.httpOauthConsumer = new

CommonsHttpOAuthConsumer(consumerKey,consumerSecret);

76.httpOauthConsumer.setTokenWithSecret(token,tokenSecret);

77.HttpResponse response = null;

78.try {

79.httpOauthConsumer.sign(post);

80.} catch (OAuthMessageSignerException e) {

81.e.printStackTrace();

82.} catch (OAuthExpectationFailedException e) {

83.e.printStackTrace();

84.} catch (OAuthCommunicationException e) {

85.e.printStackTrace();

86.}

87.//取得HTTP response

88.try {

89.response = new DefaultHttpClient().execute(post);

90.} catch (ClientProtocolException e) {

91.e.printStackTrace();

92.} catch (IOException e) {

93.e.printStackTrace();

94.}

95.return response;

96.}

97.}

复制代码

这样就完成了OAuth功能类的开发,后面都会用到这个类相关的方法。本篇到这里就算是完结请继续关注后面的文章。

android开发我的新浪微博客户端-用户授权页面UI篇(3.1)

上一篇讲了讲OAuth授权认证的事情,大概的介绍了OAuth的原理,并且完成了一个OAuth.java的类库,提供了几个OAuth认证必要的方法,本篇开始具体讲本项目的用户授权功能,用户授权页面是当用户第一次使用本软件的时候自动从载入页面跳转过来的显示的页面,涉及OAuth认证相关都是在上一篇的OAuth.java的类基础上开发。用户授权页面分为UI篇和功能篇两篇,本篇先来讲讲UI的实现,这次就不贴PS的效果图了直接贴实现后的功能截图如下:

看上面的图,其实这个页面的UI实现不复杂,首先是背景部分的实现这个参考 android 开发我的新浪微博客户端-载入页面UI篇(1.1),重点来讲讲这个半透明的弹出对话框窗口是如何实现的,首先新建名为AuthorizeActivity.java的Activity,并且在AndroidManifest.xml文件中添加这个Activity,这样这个Activity才能被使用,接下来为这个Activity新建名为authorize.xml的Layout,这个Layout很简单只负责logo小图标显示,背景部分和透明窗口都是有代码来实现,所以非常简单参考 android开发我的新浪微博客户端-载入页面UI篇(1.1)。

完成Layout建立后在AuthorizeActivity的onCreate方法添加如下代码,设置authorize.xml为AuthorizeActivity的页面Layout:

1.@Override

2.public void onCreate(Bundle savedInstanceState) {

3.super.onCreate(savedInstanceState);

4.setContentView(https://www.360docs.net/doc/a47202037.html,yout.authorize);

5........

6.}

复制代码

接下来是本文的重点部分,半透明弹窗用Dialog控件进行实现,首先为这个半透明弹窗新建一个名为dialog.xml的Layout,这个Layout主要是对4个元素进行布局,如图所示分别为i小图标、信息提示、中间文字、开始按钮,首先用LinearLayout对i小图标和信息提示进行水平布局,中间文字以一个TextView跟在下面,对于开始按钮是用RelativeLayout进行底部对齐显示。具体代码如下:

1.

2.

3.xmlns:android="https://www.360docs.net/doc/a47202037.html,/apk/res/android"

4.android:layout_width="wrap_content"

5.android:layout_height="wrap_content"

6.android:orientation="vertical"

7.android:padding="10dip">

8.

9.android:layout_width="wrap_content"

10.android:layout_height="wrap_content"

11.android:orientation="horizontal">

12.

13.android:layout_width="wrap_content"

14.android:layout_height="wrap_content"

15.android:src="@drawable/info_icon">

16.

17.

18.android:layout_width="wrap_content"

19.android:layout_height="wrap_content"

20.android:text="信息提示"

21.android:textSize="13px"

22.android:textColor="#219ac6"

23.android:layout_marginLeft="5dip">

24.

25.

26.

27.android:id="@+id/text_info"

28.android:layout_marginTop="6px"

29.android:layout_width="200px"

30.android:layout_height="wrap_content"

31.android:textColor="#686767"

32.android:textSize="14px"

33.android:text="第一次使用需要输入您的新浪微博账号和密码进行登录授权

">

34.

35.

36.android:layout_width="fill_parent"

新浪微博企业认证申请公函1504901

新浪微博企业认证申请公函1504901 企业用户认证申请公函 企业营业执照登记名称:快商(厦门)软件科技有限公司 企业微博UID地址: (请填写公函上传框下方提示的UID地址) 本企业微博是由企业注册,并由本企业指定员工负责内容维护。(如指定员工发生变化,本企业将提前五个工作日以书面形式通知新浪。) 本企业承诺:本企业合法有效存续,提交给新浪的认证资料真实无误,并承诺遵守新浪网网络安全规定,包括但不限于: 1. 遵守中国有关的法律和法规,不得为任何非法目的而使用网络服务系统。 2. 遵守所有与网络服务有关的网络协议、规定和程序。 3. 不得利用新浪网络服务系统进行任何不利于新浪的行为。 4. 不得利用新浪网络服务系统进行任何可能对互联网的正常运转造成不利影响的行为。 5. 不得利用新浪网络服务系统发布虚假的活动和宣传,承诺所有填写和发布的信息真实。 6. 不得利用新浪网络服务系统传输任何骚扰性的、中伤他人的、辱骂性的、恐吓性的、庸 俗淫秽的或其他任何非法的信息资料。 7. 不得利用新浪网络服务系统传输任何垃圾信息,传销信息或其他任何非法的信息资料。 8. 在未获授权的情况下,不得利用新浪网络服务系统发布受著作权、商标或其它法律保护 的文字、软件、声音、图片、录象、图表等。 9. 如发现任何非法使用用户账号或账号出现安全漏洞的情况,应立即通告新浪。 10. 如用户在使用新浪网络服务时违反任何规定,新浪或及其授权的人有权要求用户改正或

直接采取一切必要的措施(包括但不限于更改或删除用户张贴的内容等、暂停或终止用 户使用网络服务的权利)以减轻用户不当行为造成的影响。 11. 不得将帐号、密码转让或出借予他人使用。如用户发现其帐号遭他人非法使用,应立即 通知新浪。因黑客行为或用户的保管疏忽导致帐号、密码遭他人非法使用,新浪不承担 任何责任。 公章 日期 注意: 1. 所有都为必填项目,请您根据企业实际情况正确填写。 上传的公函应为加盖企业公章的清晰彩色图片。 下面是赠送的合同范本,不需要的可以编辑删除~~~~~~ 教育机构劳动合同范本 为大家整理提供,希望对大家有一定帮助。 一、_________ 培训学校聘请_________ 籍_________ (外文姓名)_________ (中文姓名)先生/女士/小姐为_________ 语教师,双方本着友好合作精神,自愿签订本合同并保证认真履行合同中约定的各项义务。 二、合同期自_________ 年_________ 月_________ 日起_________ 年 _________ 月_________ 日止。 三、受聘方的工作任务(另附件1 ) 四、受聘方的薪金按小时计,全部以人民币支付。 五、社会保险和福利:

代运营服务合作协议

网店代运营合作协议 甲方: 乙方: 签订日期:年月日

合约正文 甲方:【】(以下简称甲方) 乙方:【】(以下简称乙方) 一、合作平台 甲方授权乙方提供网店代运营服务,将其商品在以下平台上开展网店运营及商品销售,网店的装修、维护和营销由乙方负责,而产品的发货、网店客服由甲方自己负责: 二、合作内容

三、费用合计 四、甲方权利与义务 1、甲方必须按照乙方合作要求,提供商品的详细资料(包括商品详细介绍、商品图片、商品价格和简要说明、以及商品的配送方式等)、新产品信息及优惠活动内容。所有商品均需有准确的产品描述,对于在英文平台上销售的产品,还需有英文版本的产品描述,且资料的准确性由甲方负责。 2、如甲方需要由乙方提供客服,则甲方在乙方开始服务前,需为乙方提供相应的客服工作指导文档,约定常见客户问题的解答内容,订购过程中订单的处理要求以及退换货的处理方法等;乙方根据甲方

提供的文档对客服进行相关的培训,并由甲方约定的接口人提供相应的辅导; 3、甲乙双方确定合作关系后,甲方需向乙方提供具体产品指定客服人员,以便在合作过程中出现问题,能够及时有效找到相关人员解决问题。同时客服人员需及时和乙方沟通产品库存情况;避免产品下单后不能及时发货。 4、甲方所销售产品需提供售后服务。如产品出现质量或者其他问题时,客户能够得到满意解决方案,利于树立甲方品牌形象。如因甲方原因造成的退货,甲方需承担损失。 5、甲方必须向乙方提供真实有效的营业执照复印件、法人代表身份证明、基本业务情况说明等资质材料。并承担由于所提供的资料不准确、不真实而给乙方、第三方或买方造成的民事、刑事、经济法律责任;同时甲方保证在乙方商城网上委托乙方销售的产品是合格的、是国家允许销售的产品。 五、乙方权利与义务 1、店铺装修服务内容与服务 乙方负责为甲方网上店铺进行装修、产品图片设计、产品上传。乙方可选择性为甲方在合作平台上选用相关广告进行企业形象和商品宣传推介,并保证不损坏甲方品牌形象。 2、店铺营销服务内容与服务标准 A、直通车优化服务: (1)甲方需要事先和乙方约定每个月的直通车广告投入预算,便于乙方制定投放计划;

新浪微博抓包分析

新浪微博抓包分析 摘要:数据包捕获及分析主要实现了对网络上的数据包进行捕获及分析。在包分析功能模块,根据报文协议的格式,把抓到的包进行解析,从而得到网络层和传输层协议的报头内容等信息。本次研究通过对新浪微博的网络数据包进行捕捉,分析数据包的结构,从而掌握数据包捕获和数据包分析的相关知识。 关键词:包分析;协议;数据包 1序言 本实验研究通过技术手段捕获数据包并加以分析。Ether Peek5.1是当前较为流行的图形用户接口的抓包软件,是一个可以用来监视所有在网络上被传送的包,并分析其内容的程序。它通常被用来检查网络工作情况,或是用来发现网络程序的bugs。通过Ether Peek对TCP、SMTP和FTP等常用协议进行分析,非常有助于网络故障修复、分析以及软件和协议开发。计算机网络安全、信息安全已经成为一个国际性的问题,每年全球因计算机网络的安全问题而造成的经济损失高达数百亿美元,且这个数字正在不断增加。网络数据包的捕获与分析对研究计算机网络安全问题有着重要意义。网络安全问题既包括网络系统的安全,又包括网络信息的安全和机密性。 2抓包工具介绍及抓包原理 2.1工具介绍 目前常用的抓包工具有Sniffer,wireshark,WinNetCap,WinSock Expert,EtherPeek等。本次实验研究是在windows XP系统环境下安装EtherPeek进行抓包。EtherPeek是个用来截取网络数据包的工具,主要用监听统计和捕获数据包两种方式进行网络分析。它只能截取同一HUB的包,也就是说假如你的便携装了EtherPeek,那么你的便携必须与你要监控的目的地址和源地址中的一个接在同一HUB上。有了这个工具,如果5250仿真或telnet仿真出了问题,就可以用它来截取数据包,保存下来,再进行分析。 2.2数据包捕获原理 在通常情况下,网络通信的套接字程序只能响应与自己硬件地址相匹配的或

新浪微博运营服务合同协议书范本

编号:_______________ 新浪微博运营服务合同 甲方: _______________________ 乙方: _______________________ 签订日期: ___ 年____ 月_____ 日

甲 联系人: 手机: QQ 号: 固定电话: 传真: 方 新浪微博: 邮政编码: Email : 联系地址: 乙 联系人: 手机: QQ 号: 固定电话: 传真: 方 联系地址: 邮政编码: Email : 日常维护运营 话题创意活动策 划 粉丝通推广 总计 小写:Y □A 套餐□B 套餐□ 次/ □新开 □续 C 套餐 月 费 费用:Y 费用:Y 费用:Y 大写: 圆 四、服务条款: 1. 乙方为 公司,为甲方提供新浪微博运营服务。 2. 甲方保证其提交的信息真实、准确、及时、完整,否则由此引发直接或间接法律纠纷,所涉及 的任何法律责任或赔 偿由甲方承担。甲方同意乙方采用电话、邮件或上门拜访等方式进行确认。3. 甲方选择乙方为其提供新浪微博运营服务, 即视为同意乙方通过新浪微博在各种浏览器及各种 甲方: 乙方: 一、合同生效期: 自 年 月 日到 年 月

终端显示设备上展示其提供的信息。 4. 甲方通过乙方提供的服务进行商务活动所引起的一切法律纠纷均与乙方无关。 5. 甲方提供的信息必须遵守国家法律法规和互联网有关规定,遵循新浪微博的内容规定,否则乙 方有权在未预先告知甲方的情况下随时删除含有危害中国国家安全、淫秽色情、虚假、诽谤(包 括商业诽谤)、非法恐吓和非法骚扰、有损他人名誉、利益、侵权等违法和违反公共秩序的信息 和链接。 6. 甲方在向乙方支付相应的费用,并且甲方提供的信息资料经乙方确认落实之后,将享受乙方提 供相应的服务。 7?乙方将严格执行本合同项下的合同金额(表一),乙方收到甲方所付全部合同金额后,即为甲 方开展相关业务。 8.由于不可抗力或者非乙方能力所能解决的范畴的原因而影响乙方正常的服务和支持时,不应视作乙方违约,甲方对此表示认同。 9 ?开通粉丝通推广服务时须与北京新浪互联信息服务有限公司微博广告和智投广告的授权代理商签订相关合同,并授权乙方为甲方运营相关业务。 10 ?本合同未尽事宜由双方协商解决,协商不成时提交乙方所在地人民法院裁决。 11 ?本合同一式两份,双方各执一份,由双方代表签字盖章后生效,且本协议传真件有效。 12 ?附加条款: 乙方(盖章):授权代表(签署)日期: 甲方(盖章): 授权代表(签署) 日期:

微博数据抓取方法详细步骤

https://www.360docs.net/doc/a47202037.html, 微博数据抓取方法详细步骤 很多朋友想要采集微博上面的有用信息,对于繁多的信息量,需要手动的复制,粘贴,修改格式吗?不用这么麻烦!教你一键收集海量数据。 本文介绍使用八爪鱼采集器简易模式采集抓取新浪微博的方法。 需要采集微博内容的,在网页简易模式界面里点击微博进去之后可以看到所有关于微博的规则信息,我们直接使用就可以的。 新浪微博数据抓取步骤1 采集在微博首页进关键词搜索后的信息以及发文者的关注量,粉丝数等(下图所示)即打开微博主页进行登录后输入关键词进行搜索,采集搜索到的内容以及进入发文者页面采集关注量,粉丝数,微博数。

https://www.360docs.net/doc/a47202037.html, 1、找到微博网页-关键词搜索规则然后点击立即使用 新浪微博数据抓取步骤2 2、简易模式中微博网页-关键词搜索的任务界面介绍 查看详情:点开可以看到示例网址 任务名:自定义任务名,默认为微博网页-关键词搜索 任务组:给任务划分一个保存任务的组,如果不设置会有一个默认组用户名:请填写您的微博账号 密码:请填写微博账号的登录密码 关键词/搜索词:用于搜索的关键词,只支持填写一个 翻页次数:设置采集多少页,由于微博会封账号,限制翻页1-50页 将鼠标移动到?号图标和任务名顶部文字均可以查看详细的注释信息。示例数据:这个规则采集的所有字段信息。

https://www.360docs.net/doc/a47202037.html, 新浪微博数据抓取步骤3 3、任务设置示例 例如要采集与十九大相关的微博消息 在设置里如下图所示: 任务名:自定义任务名,也可以不设置按照默认的就行 任务组:自定义任务组,也可以不设置按照默认的就行 用户名:请填写您的微博账号,必填 密码:请填写微博账号的登录密码,必填 关键词/搜索词:用于搜索的关键词,此处填写“十九大” 翻页次数:设置采集多少页,此处设置2页 设置好之后点击保存

新浪微博企业认证申请公函

企业用户认证申请公函 企业营业执照登记名称:快商(厦门)软件科技有限公司 企业微博UID地址:(请填写公函上传框下方提示的UID地址)本企业微博是由企业注册,并由本企业指定员工负责内容维护。(如指定员工发生变化,本企业将提前五个工作日以书面形式通知新浪。) 本企业承诺:本企业合法有效存续,提交给新浪的认证资料真实无误,并承诺遵守新浪网网络安全规定,包括但不限于: 1.遵守中国有关的法律和法规,不得为任何非法目的而使用网络服务系统。 2.遵守所有与网络服务有关的网络协议、规定和程序。 3.不得利用新浪网络服务系统进行任何不利于新浪的行为。 4.不得利用新浪网络服务系统进行任何可能对互联网的正常运转造成不利影响的行为。 5.不得利用新浪网络服务系统发布虚假的活动和宣传,承诺所有填写和发布的信息真实。 6.不得利用新浪网络服务系统传输任何骚扰性的、中伤他人的、辱骂性的、恐吓性的、庸 俗淫秽的或其他任何非法的信息资料。 7.不得利用新浪网络服务系统传输任何垃圾信息,传销信息或其他任何非法的信息资料。 8.在未获授权的情况下,不得利用新浪网络服务系统发布受著作权、商标或其它法律保护 的文字、软件、声音、图片、录象、图表等。 9.如发现任何非法使用用户账号或账号出现安全漏洞的情况,应立即通告新浪。 10.如用户在使用新浪网络服务时违反任何规定,新浪或及其授权的人有权要求用户改正或 直接采取一切必要的措施(包括但不限于更改或删除用户张贴的内容等、暂停或终止用户使用网络服务的权利)以减轻用户不当行为造成的影响。 11.不得将帐号、密码转让或出借予他人使用。如用户发现其帐号遭他人非法使用,应立即 通知新浪。因黑客行为或用户的保管疏忽导致帐号、密码遭他人非法使用,新浪不承担任何责任。 公章 日期 注意: 1.所有都为必填项目,请您根据企业实际情况正确填写。 2.上传的公函应为加盖企业公章的清晰彩色图片。

自媒体代运营服务合同协议范本

自媒体 代运营合同合同编号 签订日期:年月日签订地点:

自媒体代运营服务合同 账号方(以下简称甲方): 地址: 联系电话: 运营服务方(以下简称乙方): 地址: 联系电话: 双方本着自愿、平等、公平、诚实、信用的原则,根据《广告法》、《合同法》等相关法律法规,经充分友好协商,签订本合同。具体内容如下: 一、服务时间 本合同约定服务时间为年月日到年月日。 二、服务内容 1、乙方为甲方提供自媒体代运营服务,包含自媒体视频、音频、图片、文字等信息的编辑、更新、维护。自媒体包含: □头条号□百家号□东方号 □微信公众号□微博□趣头条号 □企鹅号□一点号□知乎 □搜狐号□网易号□QQ视频 □优酷□搜狐视频□爱奇艺号 □哔哩哔哩□秒拍号□快传号 □大风号□新浪看点□QQ看点

2、甲方为乙方提供原始图文、视频、音频等素材,乙方根据活动方案要求,编写对应的软文文章及视频信息,自媒体发布内容不限于甲方提供的素材,通过合同所选自媒体进行有效传播。 三、服务方式 1、为保护甲方信息安全,甲方指定以下联系人与乙方进行本合同联络事宜。若甲方需增加或变更联系人,应及时书面通知乙方,因甲方迟延通知导致的影响由甲方自行承担。 2、本合同约定甲方提供素材均有以上联系人通过电子信箱发送邮件为准。 3、合同签订后,甲方向乙方提供自媒体账号等各种必要的资料和授权。 4、在合同期内,如未征得甲方同意,乙方不得擅自更改账号主题信息。 5、甲方需对所提供信息的准确、完整、真实、合法性负责,因甲方提供信息所出现的版权纠纷等乙方不承担责任;乙方提供素材所出现版权纠纷均由乙方承担。

四、合同金额及付款方式 1、本合同服务费为元(大写:元整)。 2、该合同自签订之日起三日内甲方将该款项支付给乙方。 3、乙方收款账号如下: (1)微信公众号: (2)银行信息 开户行: 公司名称: 公司账号: 五、补充及调整服务约定 根据甲方业务发展,如需乙方提供更多服务,经双方协商,需支付所选定的服务项目,并另行签订补充合同即可生效。 六、保密条款 1、甲方承诺,对乙方提供的任何资料、信息履行保密义务,未经乙方同意,不向第三方泄露。 2、乙方承诺,对甲方提供的一切资料及其他商业秘密,未经甲方许可不向任何第三方泄露。本条款永久有效,不因本合同终止或完成而失效。

新浪微博数据抓取详细教程

https://www.360docs.net/doc/a47202037.html, 新浪微博数据抓取详细教程 本文介绍使用八爪鱼采集器简易模式采集抓取新浪微博的方法。 需要采集微博内容的,在网页简易模式界面里点击微博进去之后可以看到所有关于微博的规则信息,我们直接使用就可以的。 新浪微博数据抓取步骤1 采集在微博首页进关键词搜索后的信息以及发文者的关注量,粉丝数等(下图所示)即打开微博主页进行登录后输入关键词进行搜索,采集搜索到的内容以及进入发文者页面采集关注量,粉丝数,微博数。 1、找到微博网页-关键词搜索规则然后点击立即使用

https://www.360docs.net/doc/a47202037.html, 新浪微博数据抓取步骤2 2、 简易模式中微博网页-关键词搜索的任务界面介绍 查看详情:点开可以看到示例网址 任务名:自定义任务名,默认为微博网页-关键词搜索 任务组:给任务划分一个保存任务的组,如果不设置会有一个默认组 用户名:请填写您的微博账号 密码:请填写微博账号的登录密码 关键词/搜索词:用于搜索的关键词,只支持填写一个 翻页次数: 设置采集多少页,由于微博会封账号,限制翻页1-50页 将鼠标移动到?号图标和任务名顶部文字均可以查看详细的注释信息。 示例数据:这个规则采集的所有字段信息。

https://www.360docs.net/doc/a47202037.html, 新浪微博数据抓取步骤3 3、任务设置示例 例如要采集与十九大相关的微博消息 在设置里如下图所示: 任务名:自定义任务名,也可以不设置按照默认的就行 任务组:自定义任务组,也可以不设置按照默认的就行 用户名:请填写您的微博账号,必填 密码:请填写微博账号的登录密码,必填 关键词/搜索词:用于搜索的关键词,此处填写“十九大” 翻页次数:设置采集多少页,此处设置2页 设置好之后点击保存

浅析微博名人用户的影响力

浅析微博名人用户的影响力 摘要:新浪微博名人用户在微博中有极大的影响力,是当前微博界的意见领袖之一。本文通过了解名人用户的特征[4],进而分析名人产生的效应,最后全面分析微博名人用户在各方面的影响力。 关键字:新浪微博;名人用户;影响力;名人用户的特征;效应 引言 微博,即微博客( MicroBlog) 的简称,是Web3.0新兴起的一类开放互联网社交服务,是一个基于用户关系的信息分享传播以及获取平台,用户可以通过WEB、WAP以及各种客户端组件个人社区,以140字以内的文字更新信息,并实现即时分享[1]。本文选取国内用户规模最大的新浪微博作为研究对象。新浪微博是一个由新浪网推出,提供微型博客服务的类Twitter网站。2014年3月27日,新浪微博正式更名为“微博”,于2014年4月17日在美国纳斯达克正式挂牌上市。[2] 自2009年8月迅速发展起来的新浪微博,很快成为国内规模最大,用户最多的微博企业,据《2012-2013年微博发展研究报告》调查研究表明,“2013年上半年,新浪微博注册用户达到5.36亿”[3]。尤其以名人用户的活跃度最高,粉丝数量最庞大,其影响力由现实社会过渡到网络空间,在成为意见领袖方面有着天然的优势。 分析微博名人用户的影响力,首先要了解名人用户的特征[4],进而分析名人产生的效应,最后全面分析微博名人用户在各方面的影响力。 一、名人用户的特征 1.名气指数 1.1 名气指数主要表示用户名气的大小,用以界定其哪种类型名人。 1.2 根据郭秋燕等对名气指数的研究表明,名人用户关注数越小,而粉丝数越多,粉丝数与关注数比例大,同时粉丝数占据研究样本总量比例大,更易引起别人的兴趣,所以名气指数更高,名气更大。

新浪微博蓝V认证

1.企业认证范围: 1.1.公司帐号:用于企业形象宣传,官方信息发布 1.2. 分支机构帐号:用于企业分支机构、分公司或连锁机构进行宣传,提供本地 服务 1.3.产品帐号:用于主/子产品推广,市场活动及公关(注:产品有商标或软件注 册证) 1.4.招聘帐号:收集求职应聘者信息,招聘企业员工或实习生 1.5.客服帐号:提供业务咨询服务、处理用户投诉建议;维护客户关系 1.6.同一营业执照原则上仅可以申请三个不同用途的企业认证蓝V账号。如需认 证3个以上的官方账号,需满足以下任意一个条件: 1.6.1.拥有多个分支机构的连锁企业 1.6. 2.注册资本超过1000万人民币的大型企业,含多个子品牌及业务线 1.6.3.微博官方合作伙伴 2.企业认证条件: 2.1. 微博头像应为企业商标/标识或品牌Logo 2.2.微博昵称应为企业/品牌的全称或无歧义简称;若昵称为代理品牌,需体现代 理区域 2.3.微博昵称不能仅包含一个通用性描述词语,且不可使用过度修饰性词语 2.4.企业提供完成有效年检的《企业法人营业执照》/《个体工商户营业执照》等 资料 2.5.微博昵称与营业执照登记名称不一致需提供相关补充材料,如《商标注册证》、 《代理授权书》等 3.企业认证资料: 3.1.基本资料: 3.1.1.营业执照副本:已通过最新年检的营业执照副本,并将此副本拍摄成 清晰彩色照片的形式; 3.1.2.加盖了红色公司公章的企业认证公函(公函下载详见认证资料提交页

面),公函内容手抄打印后拍摄成清晰彩色照片的形式; 3.2.补充材料: 3.2.1.自有品牌:商标注册证、软件著作权证等 3.2.2.代理品牌:代理授权书、代理授权合同等 3.2.3.加盟品牌:品牌加盟证 3.2. 4.企业网站/企业网店:网站备案信息、天猫商城的卖家信息或阿里巴巴 供应商信息页的拷屏图片,如下示例图片: 3.2.5.企业实体店:实体店属于企业的文件证明资料,如:餐饮服务许可证等 注:所有非中文资料应提供资料原件及加盖翻译公司公章的彩色版翻译件。 4.认证流程: 4.1.申请准备:准备各项申请材料 4.2.在线提交认证申请:填写企业信息、上传相关认证材料 4.3.微博审核:等待工作人员审核(五个工作日内) 4.4.审核完成: 4.4.1.通过审核,申请帐号可以登录申请认证的微博,在消息--通知中收到 认证通过的通知,同时获得认证标识,自动升级为企业版 4.4.2.未通过审核,申请帐号可以登录申请认证的微博,在消息-通知中查看 未通过审核的原因

微博代理运营合同协议书范本

编号:_____________微博代理运营合同 甲方:________________________________________________ 乙方:___________________________ 签订日期:_______年______月______日

甲方: 乙方: 甲、乙双方经过友好协商,遵循平等.自愿.互惠互利.诚实信用的原则,根据《中华人民共和国合同法》等法律规定。订立如下合同条款,以便双方共同恪守履行。 事宜达成如下协议: 一、项目合作时间 自年月日至年月 日终止。如需继续合作,须双方沟通再签订后续合作协议。 二、服务内容 微博平台代运营。 三、甲方的权利和义务 1.甲方应及时的向乙方提供全面相关账号资料及证件,若由于甲方提供资料不及时导致项目进展停滞并产生相关费用,均由甲方承担。 2.甲方须提供项目专门负责人(姓名:电话:)与乙方联络沟通,以便项目工作的顺利进行。 3.甲方必须保证微博信息的合法性和真实性,如因此引起纠纷,乙方不承担任何法律责任。 4.合同签订后,甲方提供微博账号以及密码等各种必要的资料和授权。 5.按照合同约定,每月及时支付费用。 6.合作期间甲方不得授权相关业务给第三方单位。 四、乙方的权利和义务 1.乙方须提供项目专门负责人(姓名:电话:)与乙方联络沟通,

以便项目工作的顺利进行。 2.按合同相关约定,为甲方提供合同内微博代管理服务。 3.在合作期间,如未征得甲方同意,乙方不得擅自改变微博信息。 4.在要求的期限内,完成合同规定项目,并通知甲方进行验收。 5.合作期间乙方不得将甲方提供的资料传播、出售给第三方。 五、费用结算、付款时间 1.费用:本合同签订之日起,照甲方委托乙方代运营微博销售额的一定比例即以淘宝联盟账号:“”的实际佣金收益的一定比例作为乙方运营费用,具体标准为:前3个月为测试期,以每月实际佣金的20%作为乙方运营费用。后期如账号收益增长或代运营账号数量增加,微博运营良好,乙方收取的运营费用占比可商讨分成调整。 {乙方收益=(月佣金收益-10%淘宝联盟技术服务费)*20%(该比例后期可协商调整)},甲方首次提供代运维微博账号个,每个博粉丝数:。6月底甲方会再提供5个微博账号给乙方代运营,在此运维期间,甲方承诺会不断的增加微博账号。 2.每月21-25号为双方佣金对账日,甲方于23日前将当月实际佣金报账给乙方核对,乙方于25日前核对完毕并于付款日前开具发票给甲方,甲方于每月30号之前付款,如乙方在约定时间内未开具发票,甲方可顺延至乙方开具发票后3日内支付运营费用。 3.合同约定的运营费用不包含延展费用,每延展一项须另核算费用,如需延展须另签属书面合同。 4.以上分成占比为合同内项目的运营费用,不含差旅费及其它第三方费用(第三方费用是指甲、乙双方合作期内须第三方加入所产生的费用,比如商标注册、印刷、差旅、网站空间、域名、广告传播中的版权图片购买等费用),差旅费及其它第三方费用由甲方负担。 5.乙方的收款帐户信息如下: 6.

微博内容提取

微博内容提取 摘要 随着近年来微博等社交软件的使用人数日益增多,微博的隐私发展也成为人们日益关注的问题,然而由于微博没有固定的格式约束使得在微博的研究过程中有一些无意义的“噪音”的干扰,本文主要是为了完成微博的“噪音”过滤问题,实现一个小软件,来将新浪微博等微博中下载到本地的微博来进行过滤,去除其中的噪音,提取出纯净的页面内容,主要工作包括以下几个方面: (1)字符串的查找函数与分割函数的实现。 (2)多个文件的查找的函数的实现。 (3)固定字符串的即表情“噪音”的过滤实现。 (4)具有一定正则文法的“噪音”的过滤实现。 关键字:中文微博,微博,过滤,噪音,正则

Microblogging content extraction Author: Liudi Tutor: Yangkexin Abstract With recent years the number of micro-blog using social software is increasing, the development of micro-blog privacy has become a growing concern,However, due to the micro blog there is no fixed format constraint makes the interference of some meaningless "noise" in the research process of micro blog. the purpose of this paper is to complete the "noise" micro-blog filtering problem, the realization of a small software, to be used for filtering the download to the Sina micro-blog micro-blog etc., remove the noise, extract the page content is pure, the main work includes the following aspects: (1) the search function and the function of the string segmentation. (2) the implementation of the search function for multiple files (3) the filter of the expression "noise" of the fixed string. (4) the filter of a certain regular grammar "noise" of the fixed string. Keywords: Chinese micro-blog,micro-blog,filtering ,noise ,regular

新浪微博的品牌影响力分析

新浪微博的品牌影响力分析 一、关于新浪微博 (一)、微博的含义和起源 微博,即微博客的简称,是一个基于用户关系的信息分享、传播以及获取平台,用户可以通过WEB、WAP以及各种客户端组建个人社区,以140字左右的文字更新信息,并实现即时分享。①根据尼尔森在线研究的《中国社交媒体受访用户研究报告》,中国目前主流社交媒体中,微博发展最快,覆盖率远高于排名第二位的SNS(社交网站)。 微博起源于美国,埃文·威廉姆斯于2006年创建Obvious公司,并推出了Twitter服务,在最初阶段,这项服务只是用于向好友的手机发送文本信息。随着微博的不断发展和Twitter服务的升级,Twitter在社会生活的各个方面发挥着举足轻重的作用。2008 年奥巴马选举事件,让 Twitter 成功的进入到政治领域,成为政客们与民众交流与表现的平台。美国歌手迈克尔·杰克逊在家中死亡的消息,在Twitter上一经发出,也引起了全世界的关注。随着Twitter 的逐渐壮大,2009 年Obvious公司相继推出了西班牙语、法语、意大利语和德语的 Twitter 版本。Twitter 的迅猛发展也为其一轮轮的融资提供了最有利的数据说服力。(二)、新浪微博简介 随着Twitter 在国外的迅猛发展,国内的微博市场也逐渐被重视和开发。新浪微博于2009年8月14日开始内测。9月25日,新浪微博正式添加了@功能以及私信功能,此外还提供“评论”和“转发”功能,供用户交流。经过不断发展,新浪微博推出了一系列新产品和新功能,包括广场、应用、游戏、微群、微刊等等。2012 年 1 月 5 日,新浪还推出“悄悄关注”的功能,为微博用户提供了更加人性化的功能服务。近期,新浪微博又推出升级版,增加了“喜欢”等功能,扩充了页面内容,旨在进一步优化用户体验。 (三)、新浪微博发展现状 ①微博,https://www.360docs.net/doc/a47202037.html,/view/1567099.htm,百度百科

新浪微博代运营服务(托管)合同

新浪微博运营服务合同合同编号___________ 甲方:_______________________________ 乙方: (请填写与下面所盖公章一致的企业名称全名) 一、合同生效期:_____年_____月_____日到_____年_____月_____日 二、双方资料: 三、服务项目与费用(表一): 四、服务条款 1.乙方为公司,为甲方提供新浪微博运营服务。 2.甲方保证其提交的信息真实、准确、及时、完整,否则由此引发直接或间接法律纠纷,所涉及的任何法律责任或赔 偿由甲方承担。甲方同意乙方采用电话、邮件或上门拜访等方式进行确认。 3.甲方选择乙方为其提供新浪微博运营服务,即视为同意乙方通过新浪微博在各种浏览器及各种终端显示设备上展示 其提供的信息。 4.甲方通过乙方提供的服务进行商务活动所引起的一切法律纠纷均与乙方无关。 5.甲方提供的信息必须遵守国家法律法规和互联网有关规定,遵循新浪微博的内容规定,否则乙方有权在未预先告知 甲方的情况下随时删除含有危害中国国家安全、淫秽色情、虚假、诽谤(包括商业诽谤)、非法恐吓和非法骚扰、有损他人名誉、利益、侵权等违法和违反公共秩序的信息和链接。 6.甲方在向乙方支付相应的费用,并且甲方提供的信息资料经乙方确认落实之后,将享受乙方提供相应的服务。7.乙方将严格执行本合同项下的合同金额(表一),乙方收到甲方所付全部合同金额后,即为甲方开展相关业务。8.由于不可抗力或者非乙方能力所能解决的范畴的原因而影响乙方正常的服务和支持时,不应视作乙方违约,甲方对此表示认同。 9.开通粉丝通推广服务时须与北京新浪互联信息服务有限公司微博广告和智投广告的授权代理商签订相关合同,并授权乙方为甲方运营相关业务。 10.本合同未尽事宜由双方协商解决,协商不成时提交乙方所在地人民法院裁决。 11.本合同一式两份,双方各执一份,由双方代表签字盖章后生效,且本协议传真件有效。 12.附加条款:__________________________________________________________________________________________ 甲方(盖章):乙方(盖章): 授权代表(签署):________ 授权代表(签署):________ 日期:______年____月____日日期:______年____月____日

iPhone微博客户端产品体验报告

腾讯微博VS 新浪微博 因为本人来腾讯后才开始接触iPhone版的微博,所以,我应该是最典型的小小小白用户了。以下是我开始使用腾讯微博和新浪微博的感受。第一项是最直观的产品体验了,主要介绍一个功能方面。 一、功能点的比较: 1、上传头像: 腾讯微博:进入个人资料页后,点击编辑按钮,选中头像,并设为主头像。在个人资料的顶部是头像区,用户可以有多个备用头像。 (如果之前使用的是网页上的头像,则你的头像将会被覆盖)。 建议:这个头像区不就是为了方便用户直接设置头像吗?为什么不直接点击某个图片后询问用户是否设置为主头像呢。例:

新浪微博:我的资料,然后在编辑,上传头像,操作非常方便,简洁。 2、更改资料 腾讯微博:在pc上,用户可以随意更改昵称等资料,但是在手机上,只能更改头像,个性签名。

新浪微博:只要是个人资料都可以更改,甚至,您的性别。 3、微相册 腾讯微博:微相册就是查看好友所有的图片(位置不清晰),不过新版得到改善。 老版(直接点击下方资料按钮,进入个人资料页是看不到微相册的,只能通过主页进入):

新版:点击个人资料页可以看到微相册。但是,如果是这样,自己看自己的资料,为什么微相册不能对照片进行修改呢,比如增删查?

4、广场 我自己理解广场的意思,就是大家能够在一起谈论的一些话题。 腾讯微博:新版的广场给人感觉很清晰,分类很明确,能够订阅自己喜欢的话题。老版话题频道里面的内容并不一定就是该话题。例: (这跟美食有关系?)

建议:新版话题取消按钮会让人误解为取消订阅。 5、发表微博(定位) 腾讯微博:定位到当前位置,并显示地图。最好,如果能与LBS结合,定位的同时在下方显示有好友在附近。 新浪微博:比较细,显示到有多少人微博在线。发表微博后,能够提示,在您的周边有多少人同时发表了微博。新浪微博有个不好的体验就是发博文和取消博文是在同一个地方,一不小心按两下就直接回到主页面了。这个体验非常不好。

[合同]自媒体代运营服务合同

自媒体代运营服务合同 甲方: 乙方: 经甲乙双方友好协商,就乙方代甲方运营自媒体服务事宜,特订立本合同。 一、服务时间 第一条本合同约定服务时间为年月日到年月日。 二、服务内容 第二条乙方为甲方提供自媒体代运营服务,包含自媒体视频、音频、图片、文字等信息的编辑、更新、维护。自媒体包含: □头条号□百家号□东方号 □微信公众号□微博□趣头条号 □企鹅号□一点号□知乎 □搜狐号□网易号□QQ视频 □优酷□搜狐视频□爱奇艺号 □哔哩哔哩□秒拍号□快传号 □大风号□新浪看点□QQ看点 第三条甲方为乙方提供原始图文、视频、音频等素材,乙方根据活动方案要求,编写对应的软文文章及视频信息,自媒体发布内容不限于甲方提供的素材,通过合同所选自媒体进行有效传播。 三、服务方式 第四条为保护甲方信息安全,甲方指定以下联系人与乙方进行本合同联络事宜。若甲方需增加或变更联系人,应及时书面通知乙方,因甲方迟延通知导致的影响由甲方自行承担。 第五条本合同约定甲方提供素材均有以上联系人通过电子信箱发送邮件为准。 第六条合同签订后,甲方向乙方提供自媒体账号等各种必要的资料和授权。 第七条在合同期内,如未征得甲方同意,乙方不得擅自更改账号主题信息。 第八条甲方需对所提供信息的准确、完整、真实、合法性负责,因甲方提供信息所出现的版权纠纷等乙方不承担责任;乙方提供素材所出现版权纠纷均由乙方承担。 四、合同金额及付款方式 第九条本合同服务费为元(大写:元整)。 第十条该合同自签订之日起三日内甲方将该款项支付给乙方。

第十一条乙方收款账号如下: 1、微信公众号: 2、银行信息: 开户行: 公司名称: 公司账号: 五、补充及调整服务约定 第十二条根据甲方业务发展,如需乙方提供更多服务,经双方协商,需支付所选定的服务项目,并另行签订补充合同即可生效。 六、保密条款 第十三条甲方承诺,对乙方提供的任何资料、信息履行保密义务,未经乙方同意,不向第三方泄露。 第十四条乙方承诺,对甲方提供的一切资料及其他商业秘密,未经甲方许可不向任何第三方泄露。本条款永久有效,不因本合同终止或完成而失效。 七、不可抗力条款 第十五条由于无法预见的不可抗力事件,如战争、地震、罢工等事件的发生,导致任何一方不能执行本合同的部分或全部义务时,应在事件发生后24小时内通知对方。 八、法律效力及有效性条款 第十六条本合同以及附件在双方代理人签字后生效。在履行中产生争议,双方应友好协商解决,协商不成,向乙方所在地法院诉讼。 九、违约条款 第十七条乙方未按约定提供服务构成根本性违约的,甲方可解除合同,不予支付服务费用。第十八条合同签订后,甲方不得以经营状况不佳或账号变更为由要求乙方停止服务,由于甲方原因导致的合作终止,乙方不予退款。 十、附则 第十九条本合同一式贰份,由甲乙双方各执壹份,均具有法律效力,在甲乙双方代表签字后生效。 甲方:(盖章)乙方:(盖章) 代理人:代理人: 日期:日期:

微信文章抓取工具详细使用方法

https://www.360docs.net/doc/a47202037.html, 微信文章抓取工具详细使用方法 如今越来越多的优质内容发布在微信公众号中,面对这些内容,有些朋友就有采集下来的需求,下面为大家介绍使用八爪鱼抓取工具去抓取采集微信文章信息。 抓取的内容包括:微信文章标题、微信文章关键词、微信文章部分内容展示、微信所属公众号、微信文章发布时间、微信文章URL等字段数据。 采集网站:https://www.360docs.net/doc/a47202037.html,/ 步骤1:创建采集任务 1)进入主界面,选择“自定义模式”

https://www.360docs.net/doc/a47202037.html, 微信文章抓取工具详细使用步骤1 2)将要采集的网址URL复制粘贴到网站输入框中,点击“保存网址”

https://www.360docs.net/doc/a47202037.html, 微信文章抓取工具详细使用步骤2 步骤2:创建翻页循环 1)在页面右上角,打开“流程”,以展现出“流程设计器”和“定制当前操作”两个板块。点击页面中的文章搜索框,在右侧的操作提示框中,选择“输入文字”

https://www.360docs.net/doc/a47202037.html, 微信文章抓取工具详细使用步骤3 2)输入要搜索的文章信息,这里以搜索“八爪鱼大数据”为例,输入完成后,点击“确定”按钮 微信文章抓取工具详细使用步骤4

https://www.360docs.net/doc/a47202037.html, 3)“八爪鱼大数据”会自动填充到搜索框,点击“搜文章”按钮,在操作提示框中,选择“点击该按钮” 微信文章抓取工具详细使用步骤5 4)页面中出现了 “八爪鱼大数据”的文章搜索结果。将结果页面下拉到底部,点击“下一页”按钮,在右侧的操作提示框中,选择“循环点击下一页”

https://www.360docs.net/doc/a47202037.html, 微信文章抓取工具详细使用步骤6 步骤3:创建列表循环并提取数据 1)移动鼠标,选中页面里第一篇文章的区块。系统会识别此区块中的子元素,在操作提示框中,选择“选中子元素”

自媒体代运营服务合同

自媒体代运营服务合同 甲方: 乙方: 经甲乙双方友好协商,就乙方代甲方运营自媒体服务事宜,特订立本合同。 一、服务时间 第一条本合同约定服务时间为______________ 年_月_________ 日到_______年_月_日。 二、服务内容 第二条乙方为甲方提供自媒体代运营服务,包含自媒体视频、音频、图片、文字等信息的编辑、更新、维护。自媒体包含: □头条号□百家号□东方号 □微信公众号□微博□趣头条号 □知乎 □企鹅号□一占号 八、、V □搜狐号□网易号□Q Q视频 □优酷□搜狐视频□爱奇乙号 □哗哩哗哩□秒拍号□快传号 □大风号□新浪看点□Q Q看点 第三条甲方为乙方提供原始图文、视频、音频等素材,乙方根据活动方案要求,编写对应的软文文章及视频信息, 自媒体发布内容不限于甲方提供的素材,通过合同所选自媒体进行 有效传播。 三、服务方式 第四条为保护甲方信息安全,甲方指定以下联系人与乙方进行本合同联络事宜。若甲方需 增加或变更联系人,应及时书面通知乙方,因甲方迟延通知导致的影响由甲方自行承担。 第五条本合同约定甲方提供素材均有以上联系人通过电子信箱发送邮件为准。 第六条合同签订后,甲方向乙方提供自媒体账号等各种必要的资料和授权。 第七条在合同期内,如未征得甲方同意,乙方不得擅自更改账号主题信息。 第八条甲方需对所提供信息的准确、完整、真实、合法性负责,因甲方提供信息所出现的版权纠纷等乙方不承担责任;乙方提供素材所出现版权纠纷均由乙方承担。 四、合同金额及付款方式 第九条本合同服务费为_________________________ 元(大写: ____________ )。 第十条该合同自签订之日起三日内甲方将该款项支付给乙方。

微博爬虫抓取方法

https://www.360docs.net/doc/a47202037.html, 微博爬虫一天可以抓取多少条数据 微博是一个基于用户关系信息分享、传播以及获取的平台。用户可以通过WEB、WAP等各种客户端组建个人社区,以140字(包括标点符号)的文字更新信息,并实现即时分享。 微博作为一种分享和交流平台,十分更注重时效性和随意性。微博平台上产生了大量的数据。而在数据抓取领域,不同的爬虫工具能够抓取微博数据的效率是质量都是不一样的。 本文以八爪鱼这款爬虫工具为例,具体分析其抓取微博数据的效率和质量。 微博主要有三大类数据 一、博主信息抓取 采集网址:https://www.360docs.net/doc/a47202037.html,/1087030002_2975_2024_0 采集步骤:博主信息抓取步骤比较简单:打开要采集的网址>建立翻页循环(点击下一页)>建立循环列表(直接以博主信息区块建立循环列表)>采集并导出数据。 采集结果:一天(24小时)可采集上百万数据。

https://www.360docs.net/doc/a47202037.html, 微博爬虫一天可以抓取多少条数据图1 具体采集步骤,请参考以下教程:微博大号-艺术类博主信息采集 二、发布的微博抓取 采集网址: 采集步骤:这类数据抓取较为复杂,打开网页(打开某博主的微博主页,经过2次下拉加载,才会出现下一页按钮,因而需对步骤,进行Ajax下拉加载设置)>建立翻页循环(此步骤与打开网页步骤同理,当翻到第二页时,同样需要经过2次下来加载。因而也需要进行Ajax下拉加载设置)>建立循环列表(循环点击每条微博链接,以建立循环列表)>采集

https://www.360docs.net/doc/a47202037.html, 并导出数据(进入每条微博的详情页,采集所需的字段,如:博主ID、微博发布时间、微博来源、微博内容、评论数、转发数、点赞数)。 采集结果:一天(24小时)可采集上万的数据。 微博爬虫一天可以抓取多少条数据图2 具体采集步骤,请参考以下教程:新浪微博-发布的微博采集 三、微博评论采集 采集网址: https://https://www.360docs.net/doc/a47202037.html,/mdabao?is_search=0&visible=0&is_all=1&is_tag=0&profile_fty pe=1&page=1#feedtop 采集步骤:微博评论采集,采集规则也比较复杂。打开要采集的网页(打开某博主的微博主

相关文档
最新文档