Oauth(Twitter)を介してアプリケーションのscreen_nameから直接メッセージを送信する方法
-
29-09-2019 - |
質問
私はこの一見シンプルな概念について少し混乱しています。基本的に、私は自分のアカウントでイベントが発生した場合、Twitterの直接メッセージを介してユーザーに通知するWebアプリを構築しています。私は根本的なフレームワークとしてCakePHPを使用してPHPでそれを構築しています。 OAuth経由でアプリケーション「From」から直接メッセージを送信できるようにしたいと思います。 Twurlコンソールを使用しました(at 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を呼び出すときにTWURLのテストアプリケーションで認証されたアカウントからDMを送信するためです。最終的に、私はSpontwtsが行うのと同じことを達成しようとしています - あなたのアカウントで何かが起こったときにDMを介してあなたに通知します。入力、リソース、リンク、またはコードサンプルは非常に高く評価されています:)
解決
ユーザーIDが人のスクリーン名である場所で、フォロワーの画面名を介して直接メッセージを送信できます。
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とのインターフェースにしたい場合は、最初に登録する必要があります。 Twitterドキュメント これがどのように行われるかを正確に説明します。
これを手に入れたら、アクセストークンを取得する際にOAuthバージョン1 Authorizationプロトコルに従ってください。アクセストークンを持つことにより、基本的にTwitter保護されたリソースを呼び出すことができます。完全なプロトコル(上記のリンクで)は、これを達成する方法を示しています。コンソールは、Twitterを介して認証されているため、OAuthプロトコルを簡単にバイパスできます(Oauth Calling、Service Provider)。 OAUTHを使用すると、サービスプロバイダーのみがクライアント資格認証を行うことができます。
これが役立つことを願っています。