適当にプログラム作って勢いでリリースすると、運営を始めてからそういえばこれ無いと運用上不味いよねと後から気づくのが、IPアドレス弾きや禁止ワードチェックの機能。
特に禁止ワードチェックで、この間つい勢いでリリースしてしまって大失敗した。
Feedでのまとめ系のandroidアプリを公開しようと、Googleプレイにデベロッパー登録してアプリをとりあえずβ版としてアップロードしたら、なんと、ものの数分で公開を停止させられた(笑)
停止の理由は、「コンテンツ ポリシーの露骨な性表現を含むコンテンツ条項への違反。」とのこと。
健全なごく普通のアプリであって18禁のいやらしい内容なんて含んだアプリでもないし、その時は訳が分からなくて、なんで削除されてしまうの?間違いじゃない?とメールで抗議してみたら、「性的な表現、または露骨な描写を含むコンテンツやタイトル文があります。」らと指摘されて返信がきた。
改めてFeedで取得してきている記事内容を念入りに確認してみると、色んなサイトからリンクを引っ張ってきているので、中には確かに下劣な広告や文章、画像などあってビックリしたことがある。
こんな短時間で引っかかってアプリを削除されてしまうなんて、そういうのに引っ掛ける検知ツールみたいなのが動いているのだろうか。以前はGoogleプレイは無法地帯な感じだったのに、今はずいぶんと厳しくなったものです。
今年くらいからどうやら人的チェックもするようになってドンドン厳しくなっているようです。これからアプリ作って登録する方は、GoogleプレイでもApple並に気を付けてから登録するようにしましょう。
それはそうと、このままアプリ公開を断念するのもすごく悔しいし、デベロッパー登録に25ドル先払いしてしまっているので、なんとかしたい。
PHPで禁止ワードにひっかかる記事はアプリに表示させないようになんとかしました。
禁止ワードチェック機能
例えば、RSSで取得した記事のタイトルを禁止ワードチェックする場合は以下の手順になります。
まず、禁止ワードを設定するiniファイルを ngword.ini のファイル名で以下のような感じでNG_WORDSと、そのNGワードを包括してしまう用語をOK_WORDSとして作成します。
iniファイルを作ったら、PHP内で禁止ワードをパースして読み込み、チェック機能を以下のような感じで追加します。
02 | $code = parse_ini_file ( 'ngword.ini' , true); |
03 | $ng_words = $code [ 'NG_WORDS' ]; |
04 | $ok_words = $code [ 'OK_WORDS' ]; |
06 | foreach ( $rssdata ->item as $myEntry ){ |
11 | $title_temp = $myEntry ->title; |
14 | $title_temp = mb_strtolower( $title_temp , 'utf-8' ); |
17 | $title_temp = mb_convert_kana( $title_temp , 'asVK' , 'utf-8' ); |
20 | $title_temp = preg_replace( '/\s|、|。/' , '' , $title_temp ); |
23 | foreach ( $ok_words as $okWordsVal ) { |
24 | if ( strpos ( $title_temp , $okWordsVal ) !== false) { |
25 | $title_temp = str_replace ( $okWordsVal , '*' , $title_temp ); |
30 | foreach ( $ng_words as $ngWordsVal ) { |
31 | if ( strpos ( $title_temp , $ngWordsVal ) !== false) { |
39 | if ( $ngflag == 1) continue ; |
以上