明けましておめでとうございます。いつもお世話になっています。今回お聞きしたいのはhttp://www.soramimi.jp/twicpps/index.htmlTwicppsを利用した利用したTwitterのデータの取得をしたいのですが、取得するためのサンプルコードがなく、どうすればいいのかわかりません。すればいいのか教えていただけませんか?よろしくお願いします。5年前ヘッダを見る限り、そういう機能は実装されていない「つぶやく」オンリーのようです。あとは自分でよろしく!的なライブラリだと思います。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。ヘッダを見る限り、そういう機能は実装されていない「つぶやく」オンリーのようです。あとは自分でよろしく!的なライブラリだと思います。回答ありがとうございます。通りでサンプルコードが見つからないわけですね。5年前Twicppsを改良してTwitterの検索機能APIを利用するか、以前の話のhttpsでクロールするしか無いと思いますが負荷などはやること次第でAPIよりも増えそうです。それとTwitterのhtmlが更新するたびに対応する必要が出てきます。複数バージョンのhttpsが返る可能性もあります。ちなみにTwicppsにはjsonの実装がないので、そこから考えないといけなさそうです。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。件名のTwicppsを利用したを言う内容とは違いますが、Twitterのデータの取得には私が過去に質問したhttp://dixq.net/forum/viewtopic.php?f=3&t=14671のようにhttpsでHTMLのソースを取り出すことで、Twitterのデータを取得すればいいのでしょうか?ダメです。Twitterでのスクレイピングは利用規約違反になります。件名のTwicppsを利用したを言う内容とは違いますが、Twitterのデータの取得には私が過去に質問したhttp://dixq.net/forum/viewtopic.php?f=3&t=14671のようにhttpsでHTMLのソースを取り出すことで、Twitterのデータを取得すればいいのでしょうか?ダメです。Twitterでのスクレイピングは利用規約違反になります。それだとアカウント抹消か凍結されるでしょうね。言うことでhttpsは無かったことにして下さい。言えば、ログインしていない=アカウントのない非ユーザーだとどうなるのだろう。IPで弾かれそうだとは思うけど。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。件名のTwicppsを利用したを言う内容とは違いますが、Twitterのデータの取得には私が過去に質問したhttp://dixq.net/forum/viewtopic.php?f=3&t=14671のようにhttpsでHTMLのソースを取り出すことで、Twitterのデータを取得すればいいのでしょうか?ダメです。Twitterでのスクレイピングは利用規約違反になります。それだとアカウント抹消か凍結されるでしょうね。言うことでhttpsは無かったことにして下さい。言うことでhttpsは無かったことにして下さい。APIはhttpsでアクセスしないといけなかったはずなので、httpsは無かったことにできませんね。APIのりファレンスを貼っておきます。5年前http://dx.24-7.co.jp/twitterapi1-1-rest-api/#search検索するだけならsearchで、常に最新を取得し続けるならStreamingですかね。Streamingは使ったことが無いです。言うことでhttpsは無かったことにして下さい。APIはhttpsでアクセスしないといけなかったはずなので、httpsは無かったことにできませんね。さんには通じてますが、httpsで生htmlでアクセスしない(スクレイピング禁止)と言う話です。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。APIのりファレンスを貼っておきます。5年前こういう仕様らしいので、どれだけ恐ろしい量のデータが流れてくるかは試してみないとわかりません。http://lealog.hateblo.jp/entry/2013/03/10/100845こっちにはリミット無いと書いてますが有るっぽいです(未確認)。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。いう仕様らしいので、どれだけ恐ろしい量のデータが流れてくるかは試してみないとわかりません。http://lealog.hateblo.jp/entry/2013/03/10/100845こっちにはリミット無いと書いてますが有るっぽいです(未確認)。どれだけのデータが来るかは試してみないとわかりませんね。aming-api/のコードで実装しようとはしているのですが、Linuxが前提なのでうまくwindowsで実装できるか試してます。8個エラーが出ています。5年前この場合だとヘッダにあるoauth_sign_hmac_sha1関数の実体が無いというリンクエラーです。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。APIを使ってツイート送信、TL取得(RESTとユーザーストリーム両対応)、検索などを行うライブラリを作った事があります。現在でもメンテナンスしているので今でも動きます。一般公開するつもりはないのですが、率直な感想だけ載せましょう。難しいというわけではないですが、一朝一夕で一から作るのは相当大変ですよ。・OAuth1.1またはOAuth2.0プロトコルの実装が必要になります。通信プロトコルの実装は絶望的な難易度、規模ですので、何かしらのライブラリを使うのがオススメです。私はこの部分はboost::asioで代替しています。HTTPプロトコルはクライアントだけですが、C++は文字列処理ライブラリが貧困であるため、少し難易度が高いです。私はboost::xpressiveで正規表現でのパースを高速化しています。OAuthプロトコルですが、中規模程度の規格で、規格準拠の実装をする難易度もそこそこです。難易度が高い要因としては、OAuthも文字列処理がメインだからです。ユニコード周りの変換は、linuxならiconvなどが便利です。Windows向けではICUなどがオススメです。C++を扱うことによる難易度としては、実装がほとんど流布していないことです。C++向けのOAuthライブラリなどはメンテナンスされていなかったり雑な実装であったりすることが多いです。そもそもほとんど存在しません。私はいろいろ試した挙句、自分で規格準拠の実装することが最も適切だと感じました。通信系はC++でも存在するんですが、C++という言語がそもそもネットワーク処理や文字列処理に特化していないので、それだけで簡単じゃないものになります。インターネットで検索して出てくるものも、C++でのTwitterAPI叩きは雑なものや、古いものが多い印象です。どこかしら間違いや古い仕様が書かれています。参考にするなら公式のドキュメントを参照すべきです。失礼ですが、質問者様はC++での実装ができるレベルには見受けられないので、C++をやめて別の言語を使うほうが良いと思います。質問者様の実力が云々ではなく、C++がそもそも向いていないのです。メンテナンスも大変です。C++の文字列処理や通信処理の標準実装がない&貧弱なのは、あなたの考える移植性にも難点になります。標準でそれらが用意されている言語なら、移植性を考える必要がなくなります。APIを実装したのは趣味(とC++への異常愛)ですが、まあそりゃあみんな実装しようと思わない、できないよなあ、と思いました。C++を使うメリットは「C++が好き」「とにかく他の実装より速い」くらいですので、他の言語がいいと思います。javascriptとかrubyとかC#とかが楽な印象です。この場合だとヘッダにあるoauth_sign_hmac_sha1関数の実体が無いというリンクエラーです。<oauth.h>とTwicppsのoauthはインターフェイスが違うのでは無いでしょうか?回答ありがとうございます。調べてみてoauthのビルドのサイトなども見つかったので試してみたのですが、ビルドのやり方を間違えているみたいで試すことが出来ませんでした。APIを使ってツイート送信、TL取得(RESTとユーザーストリーム両対応)、検索などを行うライブラリを作った事があります。現在でもメンテナンスしているので今でも動きます。一般公開するつもりはないのですが、率直な感想だけ載せましょう。難しいというわけではないですが、一朝一夕で一から作るのは相当大変ですよ。・OAuth1.1またはOAuth2.0プロトコルの実装が必要になります。通信プロトコルの実装は絶望的な難易度、規模ですので、何かしらのライブラリを使うのがオススメです。私はこの部分はboost::asioで代替しています。HTTPプロトコルはクライアントだけですが、C++は文字列処理ライブラリが貧困であるため、少し難易度が高いです。私はboost::xpressiveで正規表現でのパースを高速化しています。OAuthプロトコルですが、中規模程度の規格で、規格準拠の実装をする難易度もそこそこです。難易度が高い要因としては、OAuthも文字列処理がメインだからです。ユニコード周りの変換は、linuxならiconvなどが便利です。Windows向けではICUなどがオススメです。C++を扱うことによる難易度としては、実装がほとんど流布していないことです。C++向けのOAuthライブラリなどはメンテナンスされていなかったり雑な実装であったりすることが多いです。そもそもほとんど存在しません。私はいろいろ試した挙句、自分で規格準拠の実装することが最も適切だと感じました。通信系はC++でも存在するんですが、C++という言語がそもそもネットワーク処理や文字列処理に特化していないので、それだけで簡単じゃないものになります。インターネットで検索して出てくるものも、C++でのTwitterAPI叩きは雑なものや、古いものが多い印象です。どこかしら間違いや古い仕様が書かれています。参考にするなら公式のドキュメントを参照すべきです。失礼ですが、質問者様はC++での実装ができるレベルには見受けられないので、C++をやめて別の言語を使うほうが良いと思います。質問者様の実力が云々ではなく、C++がそもそも向いていないのです。メンテナンスも大変です。C++の文字列処理や通信処理の標準実装がない&貧弱なのは、あなたの考える移植性にも難点になります。標準でそれらが用意されている言語なら、移植性を考える必要がなくなります。APIを実装したのは趣味(とC++への異常愛)ですが、まあそりゃあみんな実装しようと思わない、できないよなあ、と思いました。C++を使うメリットは「C++が好き」「とにかく他の実装より速い」くらいですので、他の言語がいいと思います。javascriptとかrubyとかC#とかが楽な印象です。API実装についての必要なものや感想を丁寧に教えていただき、ありがとうございます。APIを実装しようと思ったのは、単純に別で作成している処理プログラムに組み込もうと思ったからです。nullptrさんの書いていただいた内容からは、今の私では知識不足だなと思いました。nullptrさんの仰る通りrubyやC#などの別言語ではサンプルコードもありますので、そちらを実装してみようと思います。C++へはファイル経由やメモリ経由(行けるかな?)などで受け渡ししようかなと思います。回答していただいた皆さん、ありがとうございました。最終的に別言語での実装という話にはなりましたが、C++で必要なことやTwitterの禁止事項などを知ることが出来ました。ありがとうございました。ミクプラは自由にリンクできます。