ホームページ >バックエンド開発 >PHPチュートリアル >Sina Weibo オープン プラットフォーム API を使用して Web サイトのコンテンツを自分の Weibo に同期する際の問題
WordPress Webサイトは記事を投稿するときにSina Weiboに同期できると言われています。同じ方法に基づいてphpコードのテストを書きたいと思います。以下の内容は http://kinggoo.com/wpsycnweibo.htm より引用
Weibo に同期するには、プラグイン、関連ブログ、プラグイン以外の Weibo インターフェースの大きく 3 つの方法があります
1 つ目は、 Baidu で直接検索する
2 番目の方法は、Sina がブログを関連付けるオプションをキャンセルしましたが、機能はキャンセルされていないため、以下のアドレスを要求して設定することができます。3 番目の方法は Sina のを使用する必要があります。
1) Sina Weibo オープン プラットフォームにアクセスして、サイト内アプリケーションを作成します。審査に合格したかどうかは関係ありません。ただし、合格した場合は、Weibo に表示されます。 KingGoo Technology Blog の画像など、特定のアプリケーションから作成する方法は、Google の Baidu 検索で確認できます。非常に簡単です (ただし、レビューに合格したことがなく、それでもレビューに合格したい場合は、私が作成できます)。有料のヘルプを提供してください~)、アプリケーションを作成した後、以下のアプリケーション アプリケーションの App Key を使用する必要があります
2) テーマの function.php ファイルの最後に次のコードを追加します
// 微博同步function post_to_sina_weibo($post_ID) { if( wp_is_post_revision($post_ID) ) return; $get_post_info = get_post($post_ID); $get_post_centent = get_post($post_ID)->post_content; //去掉文章内的html编码的空格、换行、tab等符号(如果你文章的编码格式是这样子,可以将下面的"//"去掉即开启此功能) //$get_post_centent = str_replace("\t", " ", str_replace("\n", " ", str_replace(" ", " ", $get_post_centent))); $get_post_title = get_post($post_ID)->post_title; if ( $get_post_info->post_status == 'publish' && $_POST['original_post_status'] != 'publish' ) { $request = new WP_Http; $status = '【' . strip_tags( $get_post_title ) . '】 ' . mb_strimwidth(strip_tags( apply_filters('the_content', $get_post_centent)),0, 132,'...') . ' 全文地址:' . get_permalink($post_ID) ; $api_url = 'https://api.weibo.com/2/statuses/update.json'; $body = array( 'status' => $status, 'source'=>'4135063399'); $headers = array( 'Authorization' => 'Basic ' . '1fFjYc3uQHZpcF32fS5jb146MxFeY19DYF53aWfzNA==' ); /* 如果你使用改方法,请注释掉上面$headers = array( 'Authorization' => 'Basic ' . '1fFjYc3uQHZpcF32fS5jb146MxFeY19DYF53aWfzNA==' ); 换成如下代码 //你的新浪微博登陆名 $username = '' ; //你的新浪微博登陆密码 $password = '' ; $headers = array( 'Authorization' => 'Basic ' . base64_encode('$username:$password')); */ $result = $request->post( $api_url , array( 'body' => $body, 'headers' => $headers ) ); }}add_action('publish_post', 'post_to_sina_weibo', 0);
<?phprequire ('EasyHttp.php');require ('EasyHttp/Curl.php');require ('EasyHttp/Cookie.php');require ('EasyHttp/Encoding.php');require ('EasyHttp/Fsockopen.php');require ('EasyHttp/Proxy.php');require ('EasyHttp/Streams.php');$r = new EasyHttp();$status = 'ceshi444bbbb' ;$api_url = 'https://api.weibo.com/2/statuses/update.json'; $body = array( 'status' => $status, 'source'=>'这里appkey');$headers = array( 'Authorization' => 'Basic ' .'这里64位编码后的用户名和密码' );$result = $r->post( $api_url , array('body' => $body, 'headers' => $headers ) );print_r($result);?>
ディスカッションへの返信(解決策)