以前也搞过twip,不过没有成功,这次经过一个晚上的奋斗,终于搞定。
参考:
{ Colorful Me, Color for Me }博客
准备工作
申请apps时要填表,填表要注意:
Application Name 就是程序名称,OAuth成功后它就是你发的推的 via XXX 信息的XXX(也就是客户端名称)。这个是唯一的,被人申请了就只有起另外的名字了。
Description Organization Website 随便填写。
Application Website 就是 via XXX 的链接,也可随便填写。
Application Type 选 Browser。
Callback URL :填写能访问到”callback.php”文件的完整网址(http://你的域名/twip/callback.php)。
Default Access type 选 Read Write。
Use Twitter for login 不选。
然后确认。你会得到Consumer key 和 Consumer secret。
这样就申请完成。
准备工作做完后,就要修改twip的配置文件了。
修改oauth_config.php
define(‘OAUTH_DIR’,’/home/user/oauth/’); /填写存放oauth的目录,注意最后还有一个”/”的(网上教程和twip作者都说应放在一个web用户无法访问的目录中,可能是为了安全起见吧,其实任何一个目录都可以,只要指定目录的位置正确并且有写权限就行。)
define(‘CONSUMER_KEY’, ”); /在”里面填上刚刚得到的Consumer key
define(‘CONSUMER_SECRET’, ”); /在”里面填上刚刚得到的Consumer secret
define(‘OAUTH_CALLBACK’, ‘http://127.0.0.1/twip/callback.php’); /在这里填上你的Callback URL,和申请apps时的callback url 一样。
define(‘SECURE_KEY’,’kpxaZj8nSoCt2OFddE3xI’); /这里保存的是加密数据所用的随机字符,可以随便填入字符,或者不改。
修改完后就可以上传到空间了。
问自己的API地址:http://你的域名/twip/ ,页面将显示当前Twip所使用的身份验证方法等运行状态及操作说明。
点击”Sign in with Twitter”按钮,进入Twitter登陆界面(需要翻墙),输入自己的用户名和密码后,转到授权界面,
询问是否授予相应权限给应用程序,点击”Allow”按钮,进入保存token界面,此时要求输入密码。
这个密码是用于访问保存在twip服务器上的access token文件的密码,所有通过此twip进行的发推等操作均需要使用此密码,
这里称为API密码。API密码可以与自己的Twitter密码相同或不同(不同时只能读信息,不能发信息,即对twitter帐户只有读权限,没有写权限),但若要使用Mixero,请填写Twitter密码。因为Mixero不通过API来校验密码,若API密码与Twitter不同,要么无法登陆,要么无法获得Twitter信息。完成后点击”保存”按钮,页面跳转到首页。若能看到你的timeline,说明OAuth认证获得成功,但不说明token文件一定保存成功。
然后请进入你空间的oauth文件夹,检查是否有一个“你的推特id.oauth”文件生成
如果没有生成文件则请仔细核对以上步骤细节~如有文件生成,则恭喜你成功了!
之后就可以在客户端使用用户名和API密码登陆了。
一、若需修改API密码则可以点击”Sign in with Twitter”按钮,重新输入新密码后保存好token文件即可。
二、若想多人共用此API,则须每个用户登录自己的twitter ID后再访问此API地址,再点击”Sign in with Twitter”按钮,
授权后保存好token文件即可,可能要先clearing your session.。
三、出于安全问题的考虑,建议在成功保存token文件后将oauth文件夹权限修改为755。
另外,可以设置一下Private API,来限定使用API的用户。这需要配置index.php。但我一直没搞成功。
//if you want to setup an API for limited users
//set private\_api true and set allowed\_users accordinary
//no space is allowed in allowed_users variable
//seperate users using comma.
$options[‘private_api’] = array(
true,
"allowed_users" => "bigpizza",
);