コンテンツへスキップ

Twitter投稿280文字以内mb_strwidth

Twitter 日本語投稿時の文字数・バイト数チェック

何度か、最大文字数を超えて、投稿エラーとなりました。
Twitterの文字数制限は、欧米のアルファベットユーザー対象に140文字から280文字となった経緯があります。
ただし、マルチバイト文字(日本など)向けのユーザーは、140文字の文字数制限のままでした。
実際には、半角文字と全角文字を組み合わせると、140文字以上の文字数が投稿出来たりできておりました。とりあえず、バイト数を数えて、280文字で投稿していたのですが、上手く行かないケースが多々ありました。

以下サイトを見て、最大文字数の確認方法を変更しました。

Twitterの最大文字数と最大バイト数の関係を調べてみた

  • 利用したいハッシュタグを配列登録 (ランダムで選択)
  • 280文字対応 (以前は、280バイト前後で考えていた)
    $max_char = 280 + $url_char - 11.5;
    URLは一律11.5文字でカウント
    投稿文全体で、280としておけば間違いないと思います。
    mb_strwidth($tweet_text) < $max_char
  • ハッシュタグの「ー(ハイフン)」を「_(アンダースコアー)」へ
  • URL1件投稿時の最大文字数対応(必要に応じてハッシュタグ部分を削減で対応)

文字数のカウントは、mb_strwidthを利用します。
mb_strwidth:半角文字は 1 として、 全角文字は 2 として数えます。

strlen  関数は単純にバイト数、mb_strlen  関数は半角・全角関わらず1文字とカウント、Twitterの特殊ルールに合わせるなら、 mb_strwidth  を使うのが確実です。

Twitterへアプリ登録

(PHPから実行時に必要となる、API Key、API Secret Key、Access Token、Access Token Secretの取得を行います

PHPからTwitterへの操作は、TwitterOAuthというライブラリを用います。

  1. Twitterへの開発者登録とApp登録
  2. TwitterOAuth導入

Twitterへの開発者登録とApp登録

Twitterの以下のURLへアクセスし、登録をすすめます。

上のURLよりサービスにログインします。

ログイン後の画面です。右上の「Create an app」をクリックします。

「Create an app」を押すと、最初に開発者アカウントへの登録へ誘導されます。

一番の開発理由を聞かれます。「Professional」これは通常ビジネス目的、「Hobbyist」趣味なので、個人利用は通常このカテゴリとおもいます。
今回は、API経由でTweet・Postを行いたいので、Making a botを選択しました。BOTの作成。

アカウント情報の確認をされました。通常問題ないと思います。

1,居住国、2.呼び名を聞かれました。それぞれ、Japanと「(適当に)mikiie」と登録しました。

アプリの説明をフリーフォーマットで記載しました。
WEB翻訳などで準備した内容を貼り付ければOKです。

追加の質問事項に回答します。
Twitter情報を分析Analyzeするか? Tweet,Retweet, Like, Followなどを実施するか?
また、フリーフォーマットで、開発対象の機能内容の記載が必要でした。

これまでに記載や選択した内容のサマリ画面が表示され、間違いがないか確認を行い、「Looks good!」を選択します。

最後に利用規約に同意し、Submit Application(申請を送信)すると、利用申請の結果がメールで届きます。

利用申請後に着信した利用申請結果メールのリンクよりアクセスすると、Welcome画面が表示されます。

開発登録者完了後に、Create an appを実施するとアプリの作成が行えます。
コールバックURLを登録する必要がありまうが、PHPが動作するサーバで問題ないとおもますので、http://127.0.0.1/と登録しておけば問題ないです。

最後に、Keys and TokensでアプリのAPI Keysを取得します。
(API Key、API Secret Key、Access Token、Access Token Secretの取得を行います

PHPからTwitterに投稿 TwitterOAuth導入

TwitterOAuth

GitHub-twitteroauth

V1.1 Source code (tar.gz)

TwitterOAuthをダウンロードし、PHPを利用したいサーバに配置します。

  1. ライブラリのダウンロード
  2. tar.gzの解凍
  3. フォルダ名の変更
$ curl -OL https://github.com/abraham/twitteroauth/archive/1.0.1.tar.gz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 127 0 127 0 0 285 0 --:--:-- --:--:-- --:--:-- 294
100 714k 0 714k 0 0 475k 0 --:--:-- 0:00:01 --:--:-- 1674k

$ tar -zxvf 1.0.1.tar.gz
$ mv twitteroauth-1.0.1/ twitteroauth/

以下、一番簡単なサンプルPHPです。

<?php
require "twitteroauth/autoload.php";
use Abraham\TwitterOAuth\TwitterOAuth;

$consumerKey = "your consumer key";
$consumerSecret = "your consumer secret";
$accessToken = "your access token";
$accessTokenSecret = "your access token secret";

$twitter = new TwitterOAuth($consumerKey, $consumerSecret, $accessToken, $accessTokenSecret);

$result = $twitter->post(
        "statuses/update",
        array("status" => "Tweetテスト")
);

if($twitter->getLastHttpCode() == 200) {
    print "tweeted\n";
} else {  &nbsp; 
 &nbsp;  print "tweet failed\n";
}

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA