背景
最近、私はヘルプ記事のリストを含むヘルプモジュールを備えた小さなプログラムを開発しています。記事の内容は、Web サイトのバックエンドによって編集されるリッチ テキスト形式です。アプレットの特殊性を考慮すると、HTML 形式のリッチ テキストのサポートはフレンドリーではありません。
最初は誰かが wxparse プラグインを開発し、その後 WeChat がリッチテキスト コンポーネントを提供しましたが、両方ともいくつかの問題がありました。
考え中
バックグラウンドで編集された記事スタイルが wxparse またはリッチテキスト コンポーネントによって表示された後、いくつかの互換性の問題が発生します。記事の内容を画像化し、その画像を使って表示すれば、より理想的な効果が得られるはずです。
しかし、記事ごとにアートエリアに行って絵をデザインするのは時間と労力がかかり、修正するのも大変です。
バックグラウンドで編集した記事が画像を自動生成できたら完璧ですね。
解決策
問い合わせてみたところ、海外のWebサイトthumb.ioでも同様のサービスを提供しており、APIインターフェースを使用して指定したアドレスを画像として保存することができます。しかし、テストした結果、画像が鮮明ではなく、アクセス速度も非常に遅いことがわかりました。次に、phantomjs を自分でインストールしてテストしたところ、理想的な効果が得られました。
phantomjsで保存したBaiduホームページのスクリーンショット
自動化を実現するために、Web APIも作りました。指定したAPIに該当記事のURLを送信することで、スクリーンショットを自動(非同期)生成できます。具体的な方法は、スクリーンショットのリクエストがあったときにリクエストをデータベースに保存し、サーバー上でプログラムを実行してスクリーンショットの操作を 1 つずつ実行し、スクリーンショットの撮影後に対応するリクエストのステータスを変更することです。
------------------------------------------------ ----
APIインターフェース({}内の内容がパラメータ値)
使用方法: スクリーンショットが必要なURLをスクリーンショットリクエストインターフェースに渡し、一定時間後に渡します。 (10 秒を推奨) クエリ インターフェイスを通じてクエリを実行し、返されたコード = 0 およびステータス = 1 の場合は、サムブッシュをローカルに保存するだけです。
スクリーンショットリクエストを生成します: http://thumb.loxn.cn/?url={URL}
creddie: URLパラメータはurlencode化する必要があります。そうしないとエラーが発生する可能性があります] [] 例: http:/ /thumb.loxn .cn/?url=http%3a%2f%2fwww.cnblogs.com%2fdragondean%2f
収容 .
task_id タスクID、クエリ時に使用する必要がありますステータス(コードが0または2の場合)は、キーIETYを使用する必要があります。ステータスをクエリするとき(コードが0または2の場合)、タスクが既に存在する場合、このステータスが存在します。 -1は失敗、0は処理中、1は完了を意味します izedieleg_result| ) err_msg エラーメッセージ、status=-1の場合のみ存在します。タスクステータスのクエリ
: http://thumb.loxn. cn/?a=query&task_id={TASK_ID}&key={KEY} Her Down Over in と key は両方ともリクエスト生成時に返されます、必須です 例: http://thumb.loxn.cn/?a=query&task_id =1&key=eb8578633e5cb22377ee85641204494f Return: JSON code Return status、0 成功、3 タスク失敗、4 クエリ秘密鍵エラー.ローカルに直接ダウンロードされる
err_msg エラーメッセージ、status=-1 の場合にのみ存在します------------------------------------- -------------- ------------------以上がWeb ページのスクリーンショット API インターフェイスを使用して Web ページのスクリーンショットを自動的に生成するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。