天天看點

java 實作微網誌,QQ聯合登入

開發平台 

http://connect.qq.com/  

http://open.weibo.com/ 

可以下載下傳相應的sdk 和 api 

java代碼

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

<code>package</code> <code>com.fanbaobao.action;  </code>

<code>  </code> 

<code>import</code> <code>javax.servlet.http.httpservletrequest;  </code>

<code>import</code> <code>javax.servlet.http.httpservletresponse;  </code>

<code>import</code> <code>javax.servlet.http.httpsession;  </code>

<code>import</code> <code>com.fanbaobao.service.fbbuser;  </code>

<code>import</code> <code>com.fanbaobao.service.fbbservice.client;  </code>

<code>import</code> <code>com.fanbaobao.util.fbbutil;  </code>

<code>import</code> <code>weibo4j.oauth;  </code>

<code>import</code> <code>weibo4j.users;  </code>

<code>import</code> <code>weibo4j.weibo;  </code>

<code>import</code> <code>weibo4j.http.accesstoken;  </code>

<code>import</code> <code>weibo4j.model.user;  </code>

<code>public</code> <code>class</code> <code>sinaaction </code><code>extends</code> <code>baseaction {  </code>

<code>    </code><code>private</code> <code>string errormsg;   </code>

<code>    </code><code>public</code> <code>string tologin()</code><code>throws</code> <code>exception{  </code>

<code>        </code><code>try</code> <code>{  </code>

<code>            </code><code>httpservletrequest request=getrequest();  </code>

<code>            </code><code>oauth oauth=</code><code>new</code> <code>oauth();  </code>

<code>            </code><code>getresponse().sendredirect(oauth.authorize(</code><code>"code"</code><code>)); </code><code>//重定向到新浪授權頁面  </code>

<code>        </code><code>} </code><code>catch</code> <code>(exception e) {  </code>

<code>            </code><code>e.printstacktrace();  </code>

<code>        </code><code>}  </code>

<code>        </code><code>return</code> <code>null</code><code>;  </code>

<code>    </code><code>}  </code>

<code>      </code> 

<code>    </code><code>/** </code>

<code>     </code><code>* 新浪微網誌登入的回調 </code>

<code>     </code><code>* @return </code>

<code>     </code><code>* @throws exception </code>

<code>     </code><code>*/</code>  

<code>    </code><code>public</code> <code>string dologin() </code><code>throws</code> <code>exception{  </code>

<code>          </code> 

<code>        </code><code>httpservletrequest request=getrequest();  </code>

<code>        </code><code>httpsession session=request.getsession();  </code>

<code>        </code><code>string accesstoken   = </code><code>null</code><code>;  </code>

<code>        </code><code>string code=request.getparameter(</code><code>"code"</code><code>);  </code>

<code>        </code><code>if</code><code>(code!=</code><code>null</code><code>)  </code>

<code>        </code><code>{  </code>

<code>            </code><code>accesstoken accesstoken=oauth.getaccesstokenbycode(code);  </code>

<code>            </code><code>accesstoken=accesstoken.getaccesstoken();  </code>

<code>            </code><code>if</code><code>(accesstoken!=</code><code>null</code><code>)  </code>

<code>            </code><code>{  </code>

<code>                </code><code>weibo weibo=</code><code>new</code> <code>weibo();  </code>

<code>                </code><code>weibo.settoken(accesstoken.getaccesstoken());  </code>

<code>                </code><code>users users=</code><code>new</code> <code>users();  </code>

<code>                </code><code>user weibouser=users.showuserbyid(accesstoken.getuid());  </code>

<code>                </code><code>httpservletresponse response=getresponse();  </code>

<code>                </code><code>system.out.println(weibouser.getid());  </code>

<code>                </code><code>system.out.println(weibouser.getgender());  </code>

<code>                </code><code>system.out.println(weibouser.getname());  </code>

<code>                </code><code>system.out.println(accesstoken);  </code>

<code>//              if(first&lt;2){  </code>

<code>//                  if(first==1){ //使用者第一次登入,發一條微網誌,且follow 51bi  </code>

<code>//                      timeline timeline=new timeline();  </code>

<code>//                      timeline.updatestatus("我注冊成為了#比購網#會員,免費注冊後去淘寶購物,最高有35%的現金返還。最給力的是:到拉手、京東商城、1号店等400多家知名商城不僅能享受最低價格,還能額外省錢40%。喜歡網購的童鞋都去注冊一個省錢吧!官方網址:http://www.51bi.com/space/biuser/register.jsp?currenturl=http://www.51bi.com/taobao/");  </code>

<code>//                      try {  </code>

<code>//                          friendships fm = new friendships();  </code>

<code>//                          fm.createfriendshipsbyid("1718952754");//follow 51bi  </code>

<code>//                          fm.createfriendshipsbyid("2908640880");//follow 51bi  </code>

<code>//                      } catch (exception e) {  </code>

<code>//                      }  </code>

<code>//                  }  </code>

<code>                    </code><code>//未完善資料  </code>

<code>                    </code><code>client client = fbbutil.getclient();  </code>

<code>                    </code><code>fbbuser fbbuser= client.dooauth(</code><code>1</code><code>, weibouser.getid());  </code>

<code>                    </code><code>session.setattribute(</code><code>"fbbuserinfo"</code><code>, fbbuser);     </code>

<code>                    </code><code>return</code> <code>success;  </code>

<code>                </code><code>}  </code>

<code>            </code><code>}</code><code>else</code><code>{  </code>

<code>                </code><code>errormsg=</code><code>"新浪oauth 認證請求非法!"</code><code>;  </code>

<code>                </code><code>return</code> <code>login;  </code>

<code>            </code><code>}  </code>

<code>        </code><code>return</code> <code>success;  </code>

<code>    </code><code>public</code> <code>string geterrormsg() {  </code>

<code>        </code><code>return</code> <code>errormsg;  </code>

<code>    </code><code>public</code> <code>void</code> <code>seterrormsg(string errormsg) {  </code>

<code>        </code><code>this</code><code>.errormsg = errormsg;  </code>

<code>}</code>

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

<code>import</code> <code>com.qq.connect.qqconnectexception;  </code>

<code>import</code> <code>com.qq.connect.api.openid;  </code>

<code>import</code> <code>com.qq.connect.api.qzone.pagefans;  </code>

<code>import</code> <code>com.qq.connect.api.qzone.userinfo;  </code>

<code>import</code> <code>com.qq.connect.javabeans.accesstoken;  </code>

<code>import</code> <code>com.qq.connect.javabeans.qzone.pagefansbean;  </code>

<code>import</code> <code>com.qq.connect.javabeans.qzone.userinfobean;  </code>

<code>import</code> <code>com.qq.connect.oauth.oauth;  </code>

<code>public</code> <code>class</code> <code>qzoneaction </code><code>extends</code> <code>baseaction {  </code>

<code>private</code> <code>string errormsg;   </code>

<code>        </code><code>this</code><code>.getresponse().setcontenttype(</code><code>"text/html;charset=utf-8"</code><code>);  </code>

<code>            </code><code>this</code><code>.getresponse().sendredirect(</code><code>new</code> <code>oauth().getauthorizeurl(</code><code>this</code><code>.getrequest()));  </code>

<code>        </code><code>} </code><code>catch</code> <code>(qqconnectexception e) {  </code>

<code>    </code><code>public</code> <code>string dologin()</code><code>throws</code> <code>exception{  </code>

<code>         </code><code>httpservletresponse response=</code><code>this</code><code>.getresponse();  </code>

<code>         </code><code>httpservletrequest request=</code><code>this</code><code>.getrequest();  </code>

<code>         </code><code>httpsession session=request.getsession();  </code>

<code>         </code><code>response.setcontenttype(</code><code>"text/html; charset=utf-8"</code><code>);  </code>

<code>            </code><code>try</code> <code>{  </code>

<code>                </code><code>accesstoken accesstokenobj = </code>

<code>                </code><code>(</code><code>new</code> <code>oauth()).getaccesstokenbyrequest(request);  </code>

<code>                  </code> 

<code>                </code><code>string accesstoken   = </code><code>null</code><code>,  </code>

<code>                       </code><code>openid        = </code><code>null</code><code>;  </code>

<code>                </code><code>long tokenexpirein = </code><code>null</code><code>;  </code>

<code>                </code><code>if</code> <code>(accesstokenobj.getaccesstoken().equals(</code><code>""</code><code>)) {  </code>

<code>                    </code><code>errormsg=</code><code>"qq登入校驗失敗!"</code><code>;  </code>

<code>                    </code><code>return</code> <code>login;  </code>

<code>                </code><code>} </code><code>else</code> <code>{  </code>

<code>                    </code><code>accesstoken = accesstokenobj.getaccesstoken();  </code>

<code>                    </code><code>tokenexpirein = accesstokenobj.getexpirein();  </code>

<code>                      </code> 

<code>                    </code><code>request.getsession().setattribute(</code><code>"demo_access_token"</code><code>, accesstoken);  </code>

<code>                    </code><code>request.getsession().setattribute(</code>

<code>                    </code><code>"demo_token_expirein"</code><code>, string.valueof(tokenexpirein));  </code>

<code>                    </code><code>openid openidobj =  </code><code>new</code> <code>openid(accesstoken);  </code>

<code>                    </code><code>openid = openidobj.getuseropenid();  </code>

<code>                    </code><code>request.getsession().setattribute(</code><code>"demo_openid"</code><code>, openid);  </code>

<code>                    </code><code>userinfo qzoneuserinfo = </code><code>new</code> <code>userinfo(accesstoken, openid);  </code>

<code>                    </code><code>userinfobean userinfobean = qzoneuserinfo.getuserinfo();  </code>

<code>//  </code>

<code>                    </code><code>pagefans pagefansobj = </code><code>new</code> <code>pagefans(accesstoken, openid);  </code>

<code>                    </code><code>pagefansbean pagefansbean = pagefansobj.checkpagefans(</code><code>"97700000"</code><code>);  </code>

<code>                    </code><code>com.qq.connect.api.weibo.userinfo weibouserinfo = </code>

<code>                    </code><code>new</code> <code>com.qq.connect.api.weibo.userinfo(accesstoken, openid);  </code>

<code>                    </code><code>com.qq.connect.javabeans.weibo.userinfobean weibouserinfobean =</code>

<code>                     </code><code>weibouserinfo.getuserinfo();  </code>

<code>                 </code><code>// 第三方處理使用者綁定邏輯  </code>

<code>                    </code><code>string user_id=openid;  </code>

<code>                    </code><code>string nickname=</code><code>new</code> <code>string(userinfobean.getnickname());  </code>

<code>                    </code><code>system.out.println(user_id);  </code>

<code>                    </code><code>system.out.println(nickname);  </code>

<code>                    </code><code>fbbuser fbbuser= client.dooauth(</code><code>2</code><code>, user_id);  </code>

<code>//                  session.setattribute("oauth_token", oauth_token);  </code>

<code>//                  session.setattribute("oauth_token_secret", oauth_token_secret);  </code>

<code>//                  interuser interuser=new interuser(</code>

<code>                                                            </code><code>constants.login_from_qq,user_id,</code><code>null</code><code>,nickname);  </code>

<code>//                  interuser.setbiuserservice(biuserservice);  </code>

<code>//                  interuser.setruledao(ruledao);  </code>

<code>//                  interuser.setaccesstoken(accesstoken);  </code>

<code>//                  if (tokenexpirein!=null) {  </code>

<code>//                      interuser.setexpirein(string.valueof(tokenexpirein));  </code>

<code>//                  session.setattribute("uid", user_id);  </code>

<code>//                  session.setattribute("fromsite", constants.login_from_qq);  </code>

<code>//                  int first=interuser.douserlogin(request,response,false); //接口登入  </code>

<code>//                  if(first&lt;2){  </code>

<code>//                      session.setattribute("loginname",nickname);  </code>

<code>//                      if (first==-1) {  </code>

<code>//                          session.setattribute("msg","save userbind error");  </code>

<code>//                      }else if (first==-2) {  </code>

<code>//                          session.setattribute("msg","error");  </code>

<code>//                      return "qzone";  </code>

<code>//                  }          </code>

<code>            </code><code>} </code><code>catch</code> <code>(qqconnectexception e) {  </code>

<code>                </code><code>e.printstacktrace();  </code>

//login.properties  

############  

#t.sina login  

###########  

client_id =xx     

client_sercret =xx  

redirect_uri =xxx  

baseurl=https://api.weibo.com/2/  

accesstokenurl=https://api.weibo.com/oauth2/access_token  

authorizeurl=https://api.weibo.com/oauth2/authorize  

#taobao login  

#taobao_key=xxxx  

#taobao_secret=xxxxxx  

#taobao_redirect=xxxx  

#authorizeurl=https://oauth.taobao.com/authorize  

#accesstokenurl=https://oauth.taobao.com/token  

//qqconnectconfig.properties  

app_id = x  

app_key = xx  

redirect_uri = xxx  

scope = get_user_info,add_topic,add_one_blog,add_album,upload_pic,list_album,add_share,check_page_fans,add_t,

add_pic_t,del_t,get_repost_list,get_info,get_other_info,get_fanslist,get_idollist,add_idol,del_ido,

get_tenpay_addr  

baseurl = https://graph.qq.com/  

getuserinfourl = https://graph.qq.com/user/get_user_info  

accesstokenurl = https://graph.qq.com/oauth2.0/token  

authorizeurl = https://graph.qq.com/oauth2.0/authorize  

getopenidurl = https://graph.qq.com/oauth2.0/me  

addtopicurl = https://graph.qq.com/shuoshuo/add_topic  

addblogurl = https://graph.qq.com/blog/add_one_blog  

addalbumurl = https://graph.qq.com/photo/add_album  

uploadpicurl = https://graph.qq.com/photo/upload_pic  

listalbumurl = https://graph.qq.com/photo/list_album  

addshareurl = https://graph.qq.com/share/add_share  

checkpagefansurl = https://graph.qq.com/user/check_page_fans  

addturl = https://graph.qq.com/t/add_t  

addpicturl = https://graph.qq.com/t/add_pic_t  

delturl = https://graph.qq.com/t/del_t  

getweibouserinfourl = https://graph.qq.com/user/get_info  

getweibootheruserinfourl = https://graph.qq.com/user/get_other_info  

getfanslisturl = https://graph.qq.com/relation/get_fanslist  

getidolslisturl = https://graph.qq.com/relation/get_idollist  

addidolurl = https://graph.qq.com/relation/add_idol  

delidolurl = https://graph.qq.com/relation/del_idol  

gettenpayaddrurl = https://graph.qq.com/cft_info/get_tenpay_addr  

getrepostlisturl = https://graph.qq.com/t/get_repost_list  

version = 2.0.0.0  

轉自:http://takeme.iteye.com/blog/1995874

特别說明:尊重作者的勞動成果,轉載請注明出處哦~~~http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt313