讓淘寶連結在微信中分享,GO

無心之柳.NET發表於2016-03-13

老婆開了個淘寶店,小賣家的心理大家都知道,一開始的小店總是沒有光顧,吸引流量成了重中之中。

所以她到處發連結,微信裡發了好多條,可是沒過多久有好友微她,問她發的時什麼,為什麼都是打不開的。結果直接傻眼,來問我是不是她的微信壞掉了,我只能告訴她,這真不能怪她,兩大掐架呢, 你屬於誤傷,把淘寶連結直接放在微信中分享是不行的,問我為什麼 ,我哪裡知道為什麼! (其實我知道,更她解釋太麻煩,她又不一定聽得懂),她就有沒有辦法解決,我說沒有辦法,她就來了句,還電腦高手呢,這麼簡單的問題也解決不掉!嘿瞧我這暴脾氣,我就受不了激!

還好有萬能的搜尋,找了一下解決方案,原來把網頁放到ifrmae 裡就可以了,這簡單,我有個SAE,做了同個頁面扔上去把連結發給她,解決了。沒過幾天問題又來了,她上新了,又要發,這樣手動加也不是個辦法,做個小程式吧,不就簡單的CURD嗎,操起PHP,下載個thinkphp (不知道為什麼 總有人覺得它不好,我覺得他挺好)不到50行程式碼就搞定了,為了方便,還給順手生成一個二維碼,

 

public function qrcode($guid) {
    	vendor("phpqrcode.phpqrcode");
    	$url="http://".$_SERVER['HTTP_HOST'].U('Urlhandle/show',array('guid'=>$guid),$domin=true);
    	$level = 'L';

    	$size = 8;
    	ob_clean();

    	\QRcode::png($url,false,$level,$size);
    }

  有現成的東西用就是簡單,phpqrocde  so easy!,值得注意的地方, 我沒有生成檔案 ,所以一定要在 

\QRcode::png($url,false,$level,$size); 前 加上
ob_clean();

ob_clean這個函式的作用就是用來丟棄輸出緩衝區中的內容,如果你的網站有許多生成的圖片類檔案,那麼想要訪問正確,就要經常清除緩衝區。
不然圖片顯示不正常,


做到這裡,微信掃一掃,就能直接分享了,但是現在輪到我不滿意了,因為分享出去的東西,就一個連結,沒有圖片,沒有標題,如果我看到我的朋友圈裡這種東西,我是不會點的,
要帶上資訊,才完美


但資訊哪裡來,最簡單的方法,加兩個輸入框 自己加吶,但這不是我想要的,對於用的人來說,太麻煩了,哪麼只有自己去取了,

通過輸入的要轉化的URL,自動去這個URL取,也有兩個辦法,

1、通過淘寶開放的API。(這是最穩定的)

2、抓網頁啊分析啊, (時間長了會被封)

我最後還是選擇了第二種方法,為什麼 ?因為研究了taobao api 發現,獲取商品資訊的介面,它竟然是收費的,收費的,收費的!!

只能先用第二種方法了,強大的PHP 可以直接用CURL,但是這太麻煩了,特別是有些URL要經過幾次301或302跳轉的,只能找現成的的封裝好的了,

一開始用的是snoopy 太好用了,程式碼又少,

$snoopy= new \Snoopy();
		$snoopy->agent="Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36";
		$snoopy->setcookies();
		$snoopy->rawheaders["Accept-Encoding"] = "gzip, deflate, sdch";
		$snoopy->rawheaders["Accept"] = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8";
		
		$snoopy->fetch($turl);

		print_r(get_headers($turl));
		dump($snoopy->port);
		dump($snoopy->host);
		dump($snoopy->headers);

		$content=$snoopy->results;

		echo $content;

  就這麼簡單,就獲取URL返回的文字內容了,

但是snoopy 在處理有些跳轉的時候 經常不能正確返回,而是返回了,404錯誤,不得以,改用了Requests這個類庫,他提供兩種方式來獲取,一種通過CURL也可以用fsockopen的方式 ,強大而且穩定,

$headers= array(
            'Accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'
            );
        $options = array(
            'useragent' => 'Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1667.0 Safari/537.36',
            'transport' => 'Requests_Transport_fsockopen'
            );

        $request = Requests::get($url, $headers,$options);
        $content=$request->body;

transport 引數就是我指定它fsockopen的方式,因為我的虛擬主機在用curl 獲取https的時候 ,經常會出錯,不得已。

這樣一來。圖片和標題,都搞定了,

分享在朋友圈裡也是可以帶上圖片和標題了的,

做我這一切,我索性,美化了一下頁面,上傳到我的虛擬主機上了,造福大眾去了,

http://www.wx2share.com 讓淘寶連結在微信中分享

程式碼花了一天不到的時候 ,發現前端才是最磨人的

相關文章