日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

django 集成个推_Django网站添加WebIM

發布時間:2024/10/14 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 django 集成个推_Django网站添加WebIM 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這篇文章發表于2011年,已經過期。建議使用融云、個推等方案。

大多數站長的都遇到過這種情況:當你依靠自己網站的內容,辛辛苦苦的吸引了一群用戶,他們漸漸的形成一個志同道合的小圈子,然后,他們注冊了一個QQ群,從此以后你的網站不再有人光顧……為了避免這種悲劇不斷重演,WebIM工具應運而生。用戶訪問這個網站時,能看到其他正在瀏覽這個網站的用戶,彼此可以即時聊天。比如Ntalker,它可以添加好友,有群組功能,即時消息,但只有asp和php的SDK,于是我試著把它搬到了Django網站上,可以訪問onlinegalgame.com查看效果。

Register

首先申請一個Ntalker的帳號,填寫郵箱、用戶名、網站程序等,如果你是用的是DZ之類的國內主流PHP論壇程序,它會提供現成的安裝包。可惜我們用的是Django,沒有現成的可用,所以網站程序要選擇其他,然后下載SDK。話說這個SDK實在簡陋得可以,只有幾個txt文件。注冊完成后進入管理頁面,可以定制樣式。

Install

在頁面標簽之后添加以下JS代碼(放在body之前很詭異的會產生兩個標簽)

im_connectIM("onlinegalgame_com", "{{request.user.id}}", "{{request.user.username}}", "{{request.session.session_key}}", '');

onlinegalgame_com:網站的siteid,通常是你的域名生成的,注冊以后下載SDK,可以在sitekey.txt文件中找到;

user.id和user.name:獲得登錄的用戶名,如果沒有用戶名(未登錄),則為空,空用戶名在Ntalker中會顯示用戶名name;

session_key:不為空即可,但為了安全性最好保證唯一,這里直接用django生成的session_key。

引入之后,頁面下方已經可以看到WebIM的工具欄了。在Ntalker網站能修改樣式,icon,添加圖標等。但點擊窗口會提示登錄失敗,還需要配置API。

API

在自己的網站上定義一個API(比如我定義的是http://onlinegalgame.com/imxml),Ntalker會對這個地址發起請求,通常是以query參數的形式(比如登錄會通過http://onlinegalgame.com/imxml?query=login來請求),然后解析返回的xml文件,做出相應的行為。還以下的做法不夠規范——沒辦法,這東西就沒給一個規范的SDK——我省略了配置文件,直接利用API來處理所有的請求。

首先編輯urls.py文件,添加API對應的URL

urlpatterns = patterns('',

#……

url(r'^imxml$', 'onlinegalgame.views.imxml', name='imxml'),

#……

這樣當Ntalker服務器對API發起請求的時候,就會由根目錄下views.py文件的imxml函數來處理。編輯views.py文件:

from django.http import HttpResponse

def imxml(request):

#幾個config參數,這個例子中沒什么用,可以省略

im_enable = True

im_float = True

im_siteid = 'onlinegalgame_com'

#處理query參數的行為

querytype = request.GET.get('query')

query = {

'siteprofile' : 'custom'+

'utf-8'+

'Onlinegalgame',

'login' : '3.0.0'+

'true',

'addbuddy' : 'true'+

'accepted'

}

res = '%s' % query[querytype]

if querytype == None:

return HttpResponse('Invalid query paramter')

else:

return HttpResponse(res,mimetype='application/xml')#返回xml

訪問 http://onlinegalgame.com/imxml?query=siteprofile 可以看到返回的xml文件了。只要定義了對login就行了處理,就可以登錄了,如果登錄失敗,登錄Ntalker的后臺,確定這里的狀態是已開通,否則就像我一樣,苦等他們的技術客服上線然后聯系客服讓他幫忙開通吧…

SDK中規定有6個必須的API,這里只寫了3個,所以只能實現登錄、添加好友之類的行為。

Afterword

其實騰訊收購康盛之后,我原以為他們的目標是在康盛的DZ、UCHOME之上,推出WebIM的,但目前除了添加了QQ用戶登錄的接口,QQ消息推送以外,沒看到其他新動作。Ntalker的缺陷很多,但也是目前我能找到的唯一一個解決方案,希望能有更多類似的WebIM系統,這對于不愿歸順騰訊的用戶來說終歸是件好事。當然,各位如果知道同類型的WebIM(即使聊天,好友/群功能)希望能在評論中告知。

總結

以上是生活随笔為你收集整理的django 集成个推_Django网站添加WebIM的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。