不撓不屈

戦国史同盟管理人・蛛賢(Shuken)のブログです。 サイト運営情報、技術情報、備忘録、作品公開等について投稿しています。

Twitter

Twitterと連携して、匿名メッセージを受信できるサービス、マシュマロとPeingを始めてみました。

マシュマロは、AIがネガティブなメッセージを除外して、
ポジティブな内容のみを匿名で相手に送るサービス。



Peingも類似したサービスですね。というかコチラが先発のようです。
こちらはメッセージというか基本は質問箱です。



どこまで需要があるか分かりませんが、いわゆる「わさもん」なので始めてみました。
何でも構いません。メッセージお待ちしています。
時間を見つけて回答します。
このエントリーをはてなブックマークに追加 mixiチェック

備忘のため投稿します。

使える文字、使えない文字色々あるようですが、PHPでは次の正規表現で抽出できると思います。
(2020年6月6日現在の内容です。ちょいちょい変わるようです。)

この例ではハッシュタグを抽出したら、その文字列をaリンクタグで囲むように置換しています。
オプションのUnicode「/u」は必須です。例の「rel = "noopener"」も追加しています。
$full_text = preg_replace('/(?:^|[^\w\x{05be}\x{05f3}\x{05f4}&_\/]+)
[##]([\w\x{05be}\x{05f3}\x{05f4}]*[\p{L}_\x{30FB}]+[\w\x{05be}\x{05f3}\x{05f4}]*)/u', '<a href="https://twitter.com/hashtag/$1" target="_blank" rel="noopener">#$1</a>', $full_text);
ただし、これの場合、直前の改行も置換する場合があるので、
文中のハッシュタグでない「#」の可能性を考慮せず、割り切ってしまえば、
$full_text = preg_replace('/[##]([\w\x{05be}\x{05f3}\x{05f4}]*[\p{L}_\x{30FB}]+[\w\x{05be}\x{05f3}\x{05f4}]*)/u', '<a href="https://twitter.com/hashtag/$1" target="_blank" rel="noopener">#$1</a>', $full_text);
でも良いかと思います。(良い方法あればご教示ください……)

なお、Twitter APIで本文を取得する際には、デフォルトだと115文字程度で省略されますので、
クエリオプションに「"tweet_mode" => "extended"」を追加するようにしましょう。
その際、本文の格納先が「text」から「full_text」になるので留意ください。

また、クエリ結果をデータベースに格納する場合は、
本文中の特殊絵文字が扱えるようにテーブルの文字コードを「UTF8MB4」にしてください。

いろいろ独特なAPIと感じています。
日々勉強していますが、ある程度の妥協も必要かと思いました。

【参考】
参考URLには中黒「・」対応(おそらく途中から使えるようになった?)と、
文中に出現した場合のハッシュ直前の抽出について追加しています。


追加したバージョンのテスト結果。
(.NET用なのでUnicodeが/u~となっています。PHPでは/x{~}となります。)
.NET Regex Tester - Regex Storm

このエントリーをはてなブックマークに追加 mixiチェック

正式名称よく分かっていませんでしたが、「Summary Card」というんですね。
この「Summary Card」が、ずっと大きくて気になっていたんですが…

SnapCrab_Twitter_2020-5-30


調べたらlivedoorBlogの設定で小さくできました。

管理画面→ブログ設定→基本設定→Twitterカード表示形式
「with Large Image」でない方にすればいいと思います。(画像最下段)

ブログ情報基本設定_2020-5-30_12-23-24_No-00

蛇足ですが、併せて上のOGPと呼ばれる画像も、同じサイズでカスタマイズしてみました。



(追記:2020.5.30 12:35 まだ画像が反映されていない!)
(追記2:2020.5.31 23:16 いつの間にか反映されていました! 約1日ですね。)
このエントリーをはてなブックマークに追加 mixiチェック

備忘のための投稿です。

標記の件について、結論から申しますと、
申請結果メールを待っていましたが、いつの間にか通過していました。
ということです。良かったです。

結果通知が来ないな…と思っている方は一度ログインしてみてください。
(もしかしたら、当方側の理由でメールが不着という可能性もゼロではありませんが…)

以下一部始終の詳報。


5月15日(金)

Twitter APIを用いたWebツールを作成しようと思い、以下のサイトを参考にしながら、Twitter社に申請を行いました。



申請完了後、画面上に「新型コロナのせいで審査が遅くなるかもしれないからご了承ください」と英語で表示されました。

その後、しばらくしてTwitter社から返事が来ました。

ご利用ありがとうございます。
お客様のTwitter開発者アカウントの申請を受理しましたので、審査を開始いたします。 
(中略)
Twitter
よろしくお願いします。


5月16日(土)

追加情報の依頼が送られてきました。
(きちんと人の目で審査されているんだな、との印象を受けました。)

ご利用ありがとうございます。
Twitterプラットフォームでの開発に関心をお寄せいただきありがとうございます。 

お客さまの開発者アカウント申請の審査を完了する前に、お客さまの使用目的についての詳細情報のご提供をお願いします。 審査で重視されるのは以下のような情報です。
  • Twitter APIを使用する中核的な使用目的、意図、ビジネス上の目的。
  • ツイート、Twitterアカウント、またはそのコンテンツを分析する場合は、実施する分析の内容と手法または技術について詳しくお教えください。 
  • ツイート、リツイート、いいねの使用が含まれる場合は、Twitterアカウントまたはそのコンテンツに対してどのような操作を行うのかをお教えください。
TwitterコンテンツをTwitter以外で表示する場合は、お客さまの製品またはサービスで、ツイートおよびTwitterコンテンツがどこにどのように表示されるかを、行レベルの表示か集計表示かを含めてご説明願います。
上記の詳細情報を記載のうえ、このメールにご返信ください。返信をいただきましたら、審査を続行いたします。ご理解、ご協力いただければ幸いです。 

よろしくお願いいたします。 
これに対して、それぞれ400文字くらい作文し、返信しました。


5月20日(水)

追加情報の依頼が送られてきました。

ご利用ありがとうございます。
このたびはご返信いただきありがとうございました。お手数をおかけしますが、お客様のTwitter開発者アカウント申請の審査にあたり、より詳しい情報をご提供いただけますようにお願いします。 

必要な情報は以下のとおりです。 
  • Twitter APIを使用する中核的な使用目的、意図、ビジネス上の目的。
  • ここでいう「ビジネス上の目的」には営利事業に必ずしも関係しない用途も含まれますのでご注意ください。Twitterコンテンツを使用して対応しようとしている問題、ユーザーストーリー、または全体的な目標についての情報が必要です。
  • 学生、コーディング学習者、またはTwitter APIの初心者であるお客様は、実施予定のプロジェクトまたは重点分野の詳細をご提供ください。
  • ツイート、Twitterアカウント、またはそのコンテンツを分析する場合は、実施する分析の内容と手法または技術について詳しくお知らせください。
  • ここでいう「分析」にはTwitterコンテンツに対して行われるあらゆる形式の処理が含まれますのでご注意ください。使用目的については可能な限り詳細かつ完全な説明をお願いいたします。
  • ツイート、リツイート、いいねの使用が含まれる場合は、Twitterアカウントまたはそのコンテンツに対してどのような操作を行うのかをお知らせください。
  • TwitterコンテンツをTwitter以外で表示する場合は、お客様の製品またはサービスのユーザーに対して、ツイートおよびTwitterコンテンツがどこにどのように表示されるかを、行レベルの表示か集計表示かを含めてご説明ください。
このメールの返信に上記の情報を記載してお送りください。図、またはサンプルの成果物があれば、リンク情報をお知らせください。 添付ファイルの確認はできませんので、あらかじめご了承ください。 
必要な情報をお送りいただけない場合、申請は受理されません。 

これに対して、更に追加で800文字くらい作文しました。
また、「サンプルの成果物をリンク情報で」に対しては、たたき台として作成中だったphpソースを一時的にアップロードし、URLを貼付して返信しました。


5月25日(月)

しばらく間があいたので「審査中なんだろう」と思う反面、「実は届いていないんじゃないか」という心配が勝ってきたので、「ちゃんと届きましたでしょうか」と確認のメールを送信したところ、すぐに以下のような返信が。

Hello,

You tried to update a case that has been closed.
(中略)

Thank you!
「この問い合わせは既にクローズしています」

ええ!?どういうこと!?

…と、思ったんですが、改めてTwitter Developerのページにログインすると、「Add App」できるようになっててキーを取得できました。


教訓
  • 審査には時間がかかります。
  • Twitter社からの連絡が途絶えたら、もしかしたら審査完了しているかもしれません。

【2020.5.30 追記】
すんなり終わって、結果メールが返ってきている方もいるようです。
 

このエントリーをはてなブックマークに追加 mixiチェック

↑このページのトップヘ