schedulerを使いスケジューリングを行う。※他にもスケジューラーのadd-onはある様。1ヶ月(750時間)の間は無償。refused」エラーとなる。@mycb750WebAPIで文字列を校正してくれるyahooAPIについてメモ文章を入力すると文字の入力ミスや言葉の誤用がないか、わかりにくい表記や不適切な表現が使われていないかなどをチェックしてくれる。「ら抜き」言葉で「食べれる」はこのAPIを通すと「食べられる」に直されて結果が返ってくる。1時間ぐらい使用した感じでは、まだこのAPIは使えない感じがする。文脈まではみれていないので、逆によけいにおかしくなるような結果を返す場合が多々ある。ある程度はAPIのパラメーターでフィルターをかけるなどできるが、まだまだという印象。校正支援APIの公式サイトhttp://developer.yahoo.co.jp/webapi/jlp/kousei/v1/kousei.htmlまずはAPIを使用するためyahooアプリケーションIDを用意するを下記サイトから取得する。アプリケーション登録からアプリケーション名など必要項目を入力して登録するとIDが発行される。@mycb750opauthライブラリを使用してTwitter認証を実装する手順をメモ既にTwitterのストラテジが組み込まれているため、設定をするだけで実装可能Twitter認証は別途tmhOAuthというライブラリが使用されている。Twitterのoauth認証を実装する場合に使われるライブラリのよう。secret」を取得する。URL]には、Controller_AuthクラスのAction_Callbackメソッドとなるので以下のようにする。http://[サイトパス]/auth/callback/※ローカル環境の実行の場合は127.0.0.1とする。foundとなり、tmhOAuthがありませんって言ってる。見えていないようなので、tmhOAuth/tmhOAuth.phpにopauthのnamespaceに組み込むことにする。「http://localhost/basedemo/auth/login/twitter/」を実行してtwitterのログインページに遷移すればOK。validated.」が表示されれば成功。画面上はtwitterからのレスポンス情報が表示されているはず。最後に・・・facebookを先に実装しているのでより簡単に行えた。あとはこちらもDBに情報格納やらプロジェクトにあったコールバック処理、遷移に変えればよさそう。その他ストラテジの追加は下記公式サイトよりストラテジファイルをダウンロードして配置して、config設定を行い多少修正すれば、おそらくすぐに実装が可能。@mycb750facebookのアクセストークンの有効期限についてメモfacebookにはログイン認証が承認されるとアクセストークンが取得でき、2012年まではオフラインアクセストークンは一度取得すると無期限で使用可能だったが、facebookの仕様が改変され現在は廃止されている。オフラインアクセストークンは一度ユーザから許可を取り取得すると、ユーザがアプリを起動していない場合にもfacebook情報を取得することが可能。現在は無期限ではなく、デフォルトでは期限は2時間程とのこと。2時間を無期限にすることはできないが、apiが用意されており、以下クエリをfacebookに投げると2ヶ月に延長することが可能。ユーザがパスワード変更した場合やアプリを削除すればアクセストークンも使用不可になる。fb_exchange_token=EXISTING_ACCESS_TOKENopauthライブラリのfacebook認証では、アクセストークンの期限は2ヶ月となる。アプリの仕様でログインしてない場合にも情報を取得する必要がある場合には、アクセストークンをDBなどに格納しておくと良い。etc)で投稿しているopauthライブラリの実装方法について。opauthはPHPのフレームワーク毎にパッケージ化されており、FuelPHPも既にパッケージ化されている。https://github.com/andreoav/fuel-opauth※バグ改修、コードリファクリングで何度か更新されているっぽい一度大元となるFuelPHPのopauthパッケージをプロジェクトに導入すると、あとは各ストラテジのファイルを入れ込むだけで簡単に各種SNS認証が導入できる。2013/1現在のFuelPHPのopauthパッケージには、既にFacebook,Twitterの二つのストラテジは入れ込まれている。今回はとりあえずFacebookの認証を動くところまで試す。Secret」を取得する。https://developers.facebook.com/apps[Facebookでログインするウェブサイト]の[Webサイト]には手順5で作成するController_AuthクラスのAction_Loginメソッドにストラテジ文字列を引数としたアドレスがログインページとなるので以下のようにする。Secret」の値を設定),),security_saltはデフォルトと違う値かどうかをコード上チェックしているため、別の適当な値を設定すること。今後ストラテジを追加する場合にはFacebookと同様に追加して記載する。useの2」に記載されている通りpath[/auth/login/]、callback_url[/auth/callback/]でいいが、今回はlocalhost直下ではなくlocalhost/basedemoなので[/basedemo]を付け忘れないこと。今回ここで4時間ぐらい無駄にハマった・・・それぞれController_AuthクラスのAction_Authメソッド、Action_Callbackメソッドを呼び出している。「http://localhost/basedemo/auth/login/facebook/」を実行してfacebookのログインページに遷移すればOK。validated.」が表示されれば成功。画面上はfacebookからのレスポンス情報が表示されているはず。配置しただけで認証のみは簡単に行えた。あとはDBに情報格納やらプロジェクトにあったコールバック処理、遷移に変えればよさそう。その他ストラテジの追加は下記公式サイトよりストラテジファイルをダウンロードして配置して、config設定を行い多少修正すれば、おそらくすぐに実装が可能。公式サイト:http://opauth.org/あれ、ログアウト処理ないね。セッション値を削除すればいいかな。fuel/core/../../.git/modules/fuel/coreリポジトリが存在しないエラー。意味が分からない・・・まずfuel/core/../../.git/modules/fuel/coreディレクトリを探してみるが.git/modules/の段階でディレクトリが存在しない。普通はあるのかな?新規でcloneしたらいいのかな。../../../.git/modules/fuel/packages/parser6ファイル。*)これで一応エラーを回避してプッシュまで成功。git使ってる人ならおそらくすぐにわかることなのかもしれないけど、スキル不足で原因、解決策共によくわからない。原因ファイルを消してるだけなので、支障ありそうだけど、とりあえずアップできたからいいや。@mycb750サンプルデモアプリ「BaseDemoプロジェクト」を公開FuelPHPをでサービスを作るとして必要となるであろう機能のベースを勉強しながら作成している。途中過程をGitHubへアップ。※SNS認証についてはアップ段階では未実装。今から直ちに実装予定。機能詳細1.認証ログイン下記、投稿記事コードを実装[FuelPHP]独自オリジナル認証ドライバをsimpleauthを参考に実装する1[FuelPHP]独自オリジナル認証ドライバをsimpleauthを参考に実装する2[FuelPHP]完成?:独自オリジナル認証ドライバをsimpleauthを参考に実装する32.サインアップ画面:一般ユーザ権限で作成可能。end※導入手順は未確認のため、なにかあればご連絡ください。よければ・・・その他、ソースコードの指摘やフォルダ構成の指摘、全体アドバイスなどもらえると参考になるのでコメント期待!身近にスキル上、レビューできる人がいないのでコードが煩雑かも・・・さてSNS認証つけよっと。'':$redirect_path;}}ログイン認証を通った場合のリダイレクト先についてはこちらの都合上、groupの権限でswitchしている。groupのkey値をconstに指定。100;}ここまでで呼び出し完了のはず。今回はログインのみのためtb_usersテーブルにアカウントを作成しないと動かない。アカウント作成用のメソッドをauth/login/baseauth.phpに作成。1;}それでは呼び出してadminアカウントを作成。consoleから作成。exit正直戻り値が成功で「1」っていうのは意味が分からないが、simpleauthに便乗している。trueにしたいところ。phpだからしかたないのかな。これでログインできれば成功かな。今回はviewなどのコードをアップしていないので、分かりにくいところがあるので、一応githubにsignup画面込みでアップする予定。@mycb750前回の続き抽象メソッド全て実装。simpleauthパクってる所も多い。本来はDB操作はモデルでメソッド作成するべきだろう。Util_Const::DB_DLT_OFF)とパラメータ参照エラーになる。fuelphpとかではなくDB上の話。dlt_flgでデフォルトの物理削除ではなく論理削除に回避しているので、取得時も条件式にいれている。false;}}ここまでで実装完了。1;}パスワードの暗号化はsimpleauthと同様driversのメソッドを呼び出し。今回はここまでここまででドライバは一応実装済み。simpleauthドライバよりもシンプルで特に勝るところもなく仕上がったかな。@mycb750認証ドライバの作成方法についてメモFuelPHPで認証用に用意されているAuthパッケージがある。Authパッケージを既に実装しているsimpleauthドライバを使用すると簡単に認証機能を実装できる。simpleauthの仕様にあわせてテーブルカラムを用意しなければならなそう?なので、中で何をやっているか解析しつつ独自にドライバを作成。etc)認証かのタイプを格納するつもり(とりあえず)。ここではbasic認証のみのため、常に1で良い。dlt_flgは削除されたときに物理削除をさけるため、論理削除とするため。groupは今回は管理者adminと一般ユーザのuserのみとする。ドライバの準備まずは下記3点を準備する。(Auth_Acl_Driver).公式サイト:http://press.nekoget.com/fuelphp_doc_1.2/packages/auth/drivers.htmlつまりfuel/app/classes/authフォルダへ以下3つのフォルダを用意し、それぞれにドライバ名をつけたphpファイル「baseauth.php」を用意する。fuel/app/classes/auth/loginfuel/app/classes/auth/groupfuel/app/classes/auth/acl親クラスdriver.php内で抽象メソッドとして宣言しているものをとりあえずbaseauth.phpへすべて実装しておきます。$entity);これら各メソッドの処理を実装したらドライバができるはずです。それぞれメソッドでなにをやるかはsimpleauthの実装を見ながらゆっくり考えていこうと思います。configファイル準備simpleauthのconfigファイルもそのまま流用。「fuel/packages/auth/config」フォルダにあるsimpleauth.phpを「fuel/app/config」フォルダにbaseauth.phpとしてコピー。設定情報を下記のように変更。ついでに不要なものは削除。login_hash_saltはログイン認証後にSessionの認証をするために使用する文字列。ある程度の文字列にするとセキュリティ的に有効。simpleauthの仕様と同様に固定指定とする。「fuel/packages/auth/config」フォルダにあるauth.phpを「fuel/app/config」フォルダにコピー。BaseAuthをドライバとして登録。saltは親クラスdrivers.phpでパスワードに付与して暗号化する文字列。ある程度複雑な文字列の方がセキュリティ上よい。固定していのため、ブルートフォースに負ける可能性が高い。@mycb750記事に関連したその他の投稿ブログを表示するプラグインをメモ当ブログにも導入済み。Posts」は訪問しているユーザが読んでいる記事に関連する情報を紹介してくれるプラグイン。コンテンツ、タイトル、タグの三点の情報から関連記事を表示する。この三点については管理者はパーセンテージ指定が可能。Library」プラグインも一緒に入れる必要がある。Posts」を検索する。Posts」の「今すぐインストール」を実行する。4.インストールが完了したら「プラグインを有効化」を実行する。Library」を検索する。Library」の「今すぐインストール」を実行する。4.インストールが完了したら「プラグインを有効化」を実行する。して設定画面を表示する。2.上部タグのOtherを選択してコンテンツ、タイトル、タグのパーセンテージを設定する。※トータル100%になるようにするこれが実際に関連記事として表示される投稿ブログの制御になる当ブログでは下記のようにしています。Indexを選択して日本語の文字を使えるように設定する。どちらもYes指定で問題なさそう4.上部タグのPlecementを選択して実際に配置する設定(Activate)をYesにする。※これをしないとブログに表示されない自動設定にする場合はYes、手動で配置する場所を指定したい場合はNoにする。Meter」は訪問しているユーザがどのような情報を求めているかが一目でわかるプラグイン。Meter」を検索する。Meter」の「今すぐインストール」を実行する。4.インストールが完了したら「プラグインを有効化」を実行する。動作確認1.ブログ内の検索ボックスで適当なワードを入れて検索を実行する。すると検索結果が表示される。migrationコマンドで生成されたマイグレーションファイルを実行。useless.1日5杯はコーヒー、カフェオレ飲みます。yumスポンサードリンクエントリ。