My favorites | Sign in
Project Home Downloads Wiki Issues Source
Search
for
How_to_deploy_jtweet_with_oauth  
如何部署启用OAuth功能的Jtweet
Featured, Phase-Deploy
Updated Sep 16, 2010 by gythialy...@gmail.com

环境配置

Java环境配置

首先必须安装JDK,没有的同学,可以到官方站点下载。安装就是一路下一步。

安装完之后,在命令行下运行java -version,如果显示类似下面的结果,表示配置没问题。

GAE SDK配置

官方下载页面下载,下载完毕后,解压到任一目录,尽量不要在路径中包含中文字符,防止出现意外的问题

注:使用eclipse的同学推荐安装GAE的eclipse插件,详细步骤见此。使用eclipse的同学,应该都是有一定开发知识的,在此就不罗嗦了。

注册Twitter consumer key

注:此过程中有好几个步骤需要访问的地址在墙外,请确保能访问墙外地址

Twitter官方申请页面填写注册信息

  • Application Icon:程序图标,可换可不换
  • Application Name:保证唯一就可以了
  • Description:描述,可以为空
  • Application Website:程序网站,没有的,可以填本项目地址http://code.google.com/p/javatweet
  • Organization:组织,可以填http://code.google.com/p/javatweet
  • Website:组织的网站,可以填http://code.google.com/p/javatweet
  • Application Type:选Browser
  • Callback URL:随便填,但是一定要填。实际的callback url授权的时候,程序会自动生成
  • Default Access type:选Read & Write
  • Use Twitter for login:可选可不选

在注册成功页面,你会得到Consumer key和Consumer secret

配置Jtweet

  1. 项目下载页面下载部署包,解压到任一目录,目前的命名规则是和svn的版本同步的,推荐安装最新版
  2. 找到\war\WEB-INF路径下的appengine-web.xml文件,文本编辑器打开
  3. 替换<application>jtweet</application>中的jtweet为你自己的application id
  4. 替换<property name="twitter.api.key" value="[consumer key]"/>[consumer key]为前面获得的Consumer key
  5. 替换<property name="twitter.api.secret" value="[consumer key secret]"/>[consumer key secret]为前面获得的Consumer secret
  6. 保存修改后的文件

上传程序

进入GAE SDK的目录,我直接用eclipse的插件了,所以目录比较深

使用appcfg.cmd update "%jtweet的war路径%" 如下图中的橙色框中所示

如果你前面的配置无问题的话,会出现成功的提示。此过程中会提示你输入你GAE的帐号和密码,这里省去了。

注:使用eclipse的话,直接点击工具栏的部署按钮就可以了,具体步骤请参考google code的帮助文档

使用

登录你jtweet的部署地址,形如http(s)://your-api.appspot.com/,推荐使用OAuth Proxy登录,省去翻墙的麻烦

按照向导输入你的twitter ID和密码

成功之后,会自动跳转到jtweet的主页

问题?

如果你在使用过程中碰到问题,可以在twitter上@gythialy联系我,或者在项目的Issues页面提交issue

如果你是一个懒人呢,那就使用我的演示站点吧,基本都会部署最新开发版

补充

update:2010.08.07

  • 添加了OAuth Proxy功能,连唯一的一次登陆Twitter网站都可以省略了。当然,如果担心你密码的安全性,可以下载代码自行架设。
  • 关于程序中的统计代码,那个代码的统计结果只有我(@yulei666)能看见,不公开。如果各位有疑问,可以将“war\template\analytics.ftl”文件中的内容删除,注意是删除内容不是删除文件,否则会出错的。
  • 对于javatweet.appspot.com这个域名被定点掉的问题,其实对付起来很简单。用Hosts文件把这个域名强行指定到g.cn的ip上,万事大吉。
  • 由于大部分图床都杯具了,所以暂时去掉了缩略图的预览功能。
  • 在OAuth下twipic的功能也不好用了,所以也去掉了,以后研究出方法再加。

Comment by project member daodan666@gmail.com, Aug 7, 2010

@evilzhymodis, 这个。。。你把那个判断登陆的函数改改,加一段判断id的,应该差不多了

Comment by liphy...@gmail.com, Aug 14, 2010

gae后台看到的Logs 里提示错误:E 08-14 11:14PM 43.684 javax.servlet.ServletContext? log: unavailable javax.servlet.UnavailableException?: jtweet.apiproxy.ApiServlet? at org.mortbay.jetty.servlet.Holder.doSt E 08-14 11:14PM 43.686 javax.servlet.ServletContext? log: unavailable javax.servlet.UnavailableException?: jtweet.apiproxy.OAuthServlet at org.mortbay.jetty.servlet.Holder.do E 08-14 11:14PM 43.695 javax.servlet.ServletContext? log: unavailable javax.servlet.UnavailableException?: jtweet.web.ActionServlet? at org.mortbay.jetty.servlet.Holder.doStar E 08-14 11:14PM 43.698 javax.servlet.ServletContext? log: unavailable javax.servlet.UnavailableException?: jtweet.web.FollowServlet? at org.mortbay.jetty.servlet.Holder.doStar E 08-14 11:14PM 43.700 javax.servlet.ServletContext? log: unavailable javax.servlet.UnavailableException?: jtweet.web.HomeServlet? at org.mortbay.jetty.servlet.Holder.doStart( E 08-14 11:14PM 43.706 javax.servlet.ServletContext? log: unavailable javax.servlet.UnavailableException?: jtweet.web.LoginServlet? at org.mortbay.jetty.servlet.Holder.doStart E 08-14 11:14PM 43.709 javax.servlet.ServletContext? log: unavailable javax.servlet.UnavailableException?: jtweet.web.OAuthServlet at org.mortbay.jetty.servlet.Holder.doStart E 08-14 11:14PM 43.711 javax.servlet.ServletContext? log: unavailable javax.servlet.UnavailableException?: jtweet.web.SearchServlet? at org.mortbay.jetty.servlet.Holder.doStar E 08-14 11:14PM 43.715 javax.servlet.ServletContext? log: unavailable javax.servlet.UnavailableException?: jtweet.web.SettingServlet? at org.mortbay.jetty.servlet.Holder.doSta E 08-14 11:14PM 43.718 javax.servlet.ServletContext? log: unavailable javax.servlet.UnavailableException?: jtweet.web.ShortURLProxy at org.mortbay.jetty.servlet.Holder.doStar E 08-14 11:14PM 43.721 javax.servlet.ServletContext? log: unavailable javax.servlet.UnavailableException?: jtweet.web.StatusServlet? at org.mortbay.jetty.servlet.Holder.doStar E 08-14 11:14PM 43.723 javax.servlet.ServletContext? log: unavailable javax.servlet.UnavailableException?: jtweet.web.UpdateServlet? at org.mortbay.jetty.servlet.Holder.doStar E 08-14 11:14PM 43.728 javax.servlet.ServletContext? log: unavailable javax.servlet.UnavailableException?: jtweet.web.UserServlet? at org.mortbay.jetty.servlet.Holder.doStart( C 08-14 11:14PM 43.739 Uncaught exception from servlet javax.servlet.UnavailableException?: Initialization failed. at com.google.apphosting.runtime.jetty.AppVersionHandlerMa?

我建的应用也打不开。这是为什么呢? 还有就是怎么修改已经上传的程序??谢谢!!!1

Comment by iTwi...@gmail.com, Aug 16, 2010

0813的打不开

Comment by cwyal...@gmail.com, Aug 23, 2010

jtweet-oauth_v20100824beta.zip 这个版本。进去后oauth proxy输入完之后。回到home时候一直是Error: Server Error

Comment by ope...@gmail.com, Aug 31, 2010

使用 jtweet-oauth_v20100826beta.zip 版搭建成功。谢谢!

Comment by evilzhym...@gmail.com, Sep 1, 2010

乖,给我搭一个!

Comment by secr...@gmail.com, Sep 11, 2010

这个可以搭建在 godaddy linux 主机上吗?

Comment by Allen.Tsau, Oct 10, 2010

API OAuth Proxy后返回时出现500错误 log err: /apicallback org.datanucleus.jdo.exceptions.ClassNotPersistenceCapableException?: The class "The class "jtweet.apiproxy.ApiUser?" is not persistable. This means that it either hasnt been enhanced, or that the enhanced version of the file is not in the CLASSPATH (or is hidden by an unenhanced version), or the Meta-Data/annotations for the class are not found." is not persistable. This means that it either hasnt been enhanced, or that the enhanced version of the file is not in the CLASSPATH (or is hidden by an unenhanced version), or the Meta-Data for the class is not found.

at org.datanucleus.jdo.NucleusJDOHelper.getJDOExceptionForNucleusException(NucleusJDOHelper.java:241) at org.datanucleus.jdo.JDOPersistenceManager.newObjectIdInstance(JDOPersistenceManager.java:1571) at org.datanucleus.jdo.JDOPersistenceManager.getObjectById(JDOPersistenceManager.java:1767) at org.datanucleus.store.appengine.jdo.DatastoreJDOPersistenceManager.getObjectById(DatastoreJDOPersistenceManager.java:73) at jtweet.apiproxy.ApiCallbackServlet?.updateToken(ApiCallbackServlet?.java:97)
而实际上ApiUser?这个类是存在的。

Comment by onionliu...@gmail.com, Oct 13, 2010

请问,这个支持chrome扩展chrome bird么?

Comment by jeyij...@gmail.com, Nov 20, 2010

搭建成功,这是我见过最好用,功能最强的了!!又有API,又有Web界面!!

强烈赞啊!!

Comment by jeyij...@gmail.com, Nov 20, 2010

高兴得太早了 555

Comment by woner...@gmail.com, Nov 26, 2010

mobile版的上传不能!

Comment by ler...@gmail.com, Dec 6, 2010

发不了推,错误代码401。求解

Comment by W331011...@gmail.com, Dec 8, 2010

楼主你最新版250是怎么回事,一定要oauth,oauthproxy怎失效了,一定要链接官网api!

Comment by qiyi...@gmail.com, Dec 29, 2010

能打开http://jtwitweb.appspot.com/ 但登录不上了

Comment by CNmam...@gmail.com, May 24, 2011

Log里抛ClassNotPersistenceCapableException?异常的同学,可以把lib下的datanucleus的jar包删掉后update

Comment by gue...@ghut.org, Jul 4, 2011

私信功能依然無法使用。

Comment by robinle...@gmail.com, Jan 20, 2012

为何twitter的api权限只能设置“只读”,选择其他,仍然自动设置为“只读”。


Sign in to add a comment
Powered by Google Project Hosting