0

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

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

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

4

2 回答 2

1

首先,如果您希望您的应用程序与 Twitter 交互,您必须先注册它。Twitter 文档准确地解释了这是如何完成的。

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

我希望这有帮助。

于 2010-12-01T16:14:21.343 回答
1

您可以通过您的关注者的屏幕名称发送直接消息,其中 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");

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

于 2012-09-13T07:12:17.610 回答