Php 如何从应用程序发送直接消息';通过OAuth(推特)获得的屏幕名称

Php 如何从应用程序发送直接消息';通过OAuth(推特)获得的屏幕名称,php,oauth,twitter,twitter-oauth,Php,Oauth,Twitter,Twitter Oauth,我对这个看似简单的概念有点困惑。基本上,我正在构建一个web应用程序,如果用户与我的帐户发生事件,它将通过Twitter直接消息通知用户。我用PHP构建它,CakePHP作为底层框架。我希望能够通过oAuth发送“来自”应用程序的直接消息。我使用Twurl控制台(at)通过发送POST请求 http://api.twitter.com/1/direct_messages/new.xml?screen_name=<my screenname>&text=<content

我对这个看似简单的概念有点困惑。基本上,我正在构建一个web应用程序,如果用户与我的帐户发生事件,它将通过Twitter直接消息通知用户。我用PHP构建它,CakePHP作为底层框架。我希望能够通过oAuth发送“来自”应用程序的直接消息。我使用Twurl控制台(at)通过发送POST请求

http://api.twitter.com/1/direct_messages/new.xml?screen_name=<my screenname>&text=<content of dm>
http://api.twitter.com/1/direct_messages/new.xml?screen_name=&text=

当我检查我的DM时,我基本上从我自己那里得到了一个DM。这是因为Twurl控制台在从应用程序发送内容时使用了您的屏幕名,还是因为在调用direct_message/new.xml时,您正在从您的帐户发送一个DM,该帐户已通过Twurl中的测试应用程序的身份验证。最后,我希望完成与spontwts相同的事情——当您的帐户发生问题时,通过DM通知您。非常感谢您的任何输入、资源、链接或代码示例:)

首先,如果您希望您的应用程序与Twitter交互,您必须先注册它。这篇文章准确地解释了如何做到这一点

一旦你有了这个,按照OAuth版本1授权协议获取访问令牌。通过拥有访问令牌,您基本上可以调用受Twitter保护的资源。完整的协议(在上面的链接中给出)向您展示了如何实现这一点。控制台可以轻松绕过OAuth协议,因为您已经通过Twitter(OAuth调用的服务提供商)进行了身份验证。OAuth只允许服务提供商进行客户端凭据身份验证


我希望这会有所帮助。

您可以通过以下方式通过关注者的屏幕名称发送直接消息: 其中userID是用户的屏幕名称

ConfigurationBuilder cb=new ConfigurationBuilder();

cb.setOAuthAccessToken("Your App Access Token");

cb.setOAuthAccessTokenSecret("Your App Token Secret");

cb.setOAuthConsumerKey("Your App ConsumerKey");

cb.setOAuthConsumerSecret("Your App ConsumerSecret");

cb.setIncludeRTsEnabled(true);


TwitterFactory tf=new TwitterFactory(cb.build());


Twitter twitter=tf.getInstance();

twitter.sendDirectMessage(userID, "Message");

并在应用程序中提供读/写/直接消息权限

所以基本上我只需要存储Twitter为我的应用程序的屏幕名授予的访问令牌。然后我可以随时调用直接消息资源。
screen\u name
是您要向其发送直接消息的用户的twitter名称。访问令牌允许您在twitter上直接发送消息。