【问题标题】:How to send direct messages from an application's screen_name via OAuth (Twitter)如何通过 OAuth (Twitter) 从应用程序的 screen_name 发送直接消息
【发布时间】:2012-09-13 15:29:14
【问题描述】:

我对这个看似简单的概念有点困惑。基本上,我正在构建一个网络应用程序,如果用户在我的帐户上发生事件,它将通过 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 通知您。非常感谢任何输入、资源、链接或代码示例:)

【问题讨论】:

    标签: php oauth twitter twitter-oauth


    【解决方案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");
    

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

    【讨论】:

      【解决方案2】:

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

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

      我希望这会有所帮助。

      【讨论】:

      • 所以基本上我只需要存储 Twitter 为我的应用程序的屏幕名称授予的访问令牌。然后我可以在需要时调用直接消息资源。
      • screen_name 是您要向其发送直接消息的用户的 Twitter 名称。 Access Token 是为了让你在 twitter 上直接发送消息。
      猜你喜欢
      • 2013-07-29
      • 1970-01-01
      • 2011-05-08
      • 1970-01-01
      • 2011-04-16
      • 1970-01-01
      • 2010-12-12
      • 2017-03-01
      • 2020-07-14
      相关资源
      最近更新 更多