那估計不行,在沒有絕對安全的情況下,還是不要泄漏自己的用戶安全數(shù)據(jù),一般都是只返回必要的信息,如果數(shù)據(jù)庫共享,那直接給他們查詢帳號就行了...所以,你需要做一個接受頁面,然后和上面說的一樣,API的雛形就是這樣出來的,寫出來的頁面就和第三方調(diào)用差不多,首先判斷權(quán)限,是否有使用API的權(quán)限,然后分析執(zhí)行發(fā)送過來的命令,執(zhí)行完返回結(jié)果,這就是傳說中的API,具體的的話,你可以參考很多,就比如UC和DZ論壇的整合,就是使用的API的形式,你可以參考一下他的文件
成都創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供耒陽網(wǎng)站建設(shè)、耒陽做網(wǎng)站、耒陽網(wǎng)站設(shè)計、耒陽網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、耒陽企業(yè)網(wǎng)站模板建站服務(wù),十多年耒陽做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。
最近在做微信公眾平臺測試時,想在里面子菜單上添加查詢未來幾天(包括今天)天氣的功能,就查找了下好用的天氣預(yù)報查詢接口API,使用比較多的有:國家氣象局天氣接口、新浪天氣預(yù)報接口、百度天氣預(yù)報接口、google天氣接口、Yahoo天氣接口等等,我使用的是百度提供的免費天氣查詢接口API,下面與大家分享下...
1、查詢方式:
百度提供的是根據(jù)緯度和城市名查詢天氣情況
2、接口事例:
3、接口參數(shù)說明:
4、返回結(jié)果說明:
5、
//城市名
$city?=?'上海';
//對json格式的字符串進行編碼
$arr?=json_decode($str,TRUE);
print_r($atr);
//城市名
$city = '上海';
//獲取json格式的數(shù)據(jù)
$str =file_get_contents("".$city."output=jsonak=5slgyqGDENN7Sy7pw29IUvrZ");
//對json格式的字符串進行編碼
$arr =json_decode($str,TRUE); ? ? ?
print_r($atr);
6、返回頁面的是json編碼后的數(shù)據(jù):
[plain] view plain copy print?
meta?charset="UTF-8"
Array
(
[error]?=?0
[status]?=?success
[date]?=?2014-03-17
[results]?=?Array
(
[0]?=?Array
(
[currentCity]=?上海
[weather_data]=?Array
(
[0]=?Array
(
[date]?=?周一(今天,?實時:19℃)
[dayPictureUrl]?=
[nightPictureUrl]?=
[weather]?=?晴
[wind]?=?西南風(fēng)3-4級
[temperature]?=?13℃
)
[1]?=?Array
(
[date]=?周二
[dayPictureUrl]?=
[nightPictureUrl]?=?
[weather]=?多云轉(zhuǎn)陰
[wind]=?東北風(fēng)3-4級
[temperature]?=?24?~?9℃
)
[2]?=?Array
(
[date]=?周三
[dayPictureUrl]?=
[nightPictureUrl]?=?
[weather]=?中雨轉(zhuǎn)小雨
[wind]=?東北風(fēng)3-4級
[temperature]?=?15?~?8℃
)
[3]?=?Array
(
[date]=?周四
[dayPictureUrl]?=
[nightPictureUrl]?=
[weather]=?多云轉(zhuǎn)晴
[wind]=?北風(fēng)3-4級
[temperature]?=?14?~?6℃
)
)
)
)
)
meta charset="UTF-8"
Array
(
[error] = 0
[status] = success
[date] = 2014-03-17
[results] = Array
?(
? ? ?[0] = Array
? ? ? ? ?(
? ? ? ? ? ? ?[currentCity]= 上海
? ? ? ? ? ? ?[weather_data]= Array
? ? ? ? ? ? ? ? ?(
? ? ? ? ? ? ? ? ? ? ?[0]= Array
? ? ? ? ? ? ? ? ? ? ? ? ?(
? ? ? ? ? ? ? ? ? ? ? ? ? ? [date] = 周一(今天, 實時:19℃)
? ? ? ? ? ? ? ? ? ? ? ? ? ? [dayPictureUrl] =
? ? ? ? ? ? ? ? ? ? ? ? ? ? [nightPictureUrl] =
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?[weather] = 晴
? ? ? ? ? ? ? ? ? ? ? ? ? ? [wind] = 西南風(fēng)3-4級
? ? ? ? ? ? ? ? ? ? ? ? ? ? [temperature] = 13℃
? ? ? ? ? ? ? ? ? ? ? ? ?)
? ? ? ? ? ? ? ? ? ? ?[1] = Array
? ? ? ? ? ? ? ? ? ? ? ? ?(
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?[date]= 周二
? ? ? ? ? ? ? ? ? ? ? ? ? ? [dayPictureUrl] =
? ? ? ? ? ? ? ? ? ? ? ? ? ? [nightPictureUrl] =
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?[weather]= 多云轉(zhuǎn)陰
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?[wind]= 東北風(fēng)3-4級
? ? ? ? ? ? ? ? ? ? ? ? ? ? [temperature] = 24 ~ 9℃
? ? ? ? ? ? ? ? ? ? ? ? ?)
? ? ? ? ? ? ? ? ? ? ?[2] = Array
? ? ? ? ? ? ? ? ? ? ? ? ?(
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?[date]= 周三
? ? ? ? ? ? ? ? ? ? ? ? ? ? [dayPictureUrl] =
? ? ? ? ? ? ? ? ? ? ? ? ? ? [nightPictureUrl] =
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?[weather]= 中雨轉(zhuǎn)小雨
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?[wind]= 東北風(fēng)3-4級
? ? ? ? ? ? ? ? ? ? ? ? ? ? [temperature] = 15 ~ 8℃
? ? ? ? ? ? ? ? ? ? ? ? ?)
? ? ? ? ? ? ? ? ? ? ?[3] = Array
? ? ? ? ? ? ? ? ? ? ? ? ?(
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?[date]= 周四
? ? ? ? ? ? ? ? ? ? ? ? ? ? [dayPictureUrl] =
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?[nightPictureUrl] =
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?[weather]= 多云轉(zhuǎn)晴
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?[wind]= 北風(fēng)3-4級
? ? ? ? ? ? ? ? ? ? ? ? ? ? [temperature] = 14 ~ 6℃
? ? ? ? ? ? ? ? ? ? ? ? ?)
? ? ? ? ? ? ? ? ?)
? ? ? ? ?)
?)
)
7、PHP中自帶了處理json格式字符串的內(nèi)置函數(shù),下面做一個事例,并給出完整代碼:
[php] view plain copy print?
metacharset="UTF-8"
?php
//城市名
$city?=?'上海';
//獲取json格式的數(shù)據(jù)
$str?=?file_get_contents("".$city."output=jsonak=5slgyqGDENN7Sy7pw29IUvrZ");
//對json格式的字符串進行編碼
$arr?=?json_decode($str,TRUE);
echo?"城市:".$arr['results'][0]['currentCity']."?日期:".$arr['date']."br?/br?/";
foreach($arr['results'][0]['weather_data']as?$val)
{
echo?$val['date']."br/";
echo?"天氣:{$val['weather']}br/";
echo?"風(fēng)向:{$val['wind']}br/";
echo?"溫度:{$val['temperature']}br/br?/";
}
?
metacharset="UTF-8"
?php
//城市名
$city = '上海';
//獲取json格式的數(shù)據(jù)
$str = file_get_contents("".$city."output=jsonak=5slgyqGDENN7Sy7pw29IUvrZ");
//對json格式的字符串進行編碼
$arr = json_decode($str,TRUE); ? ? ?
echo "城市:".$arr['results'][0]['currentCity']." 日期:".$arr['date']."br /br /";
foreach($arr['results'][0]['weather_data']as $val)
{
?echo $val['date']."br/";
?echo "天氣:{$val['weather']}br/";
?echo "風(fēng)向:{$val['wind']}br/";
?echo "溫度:{$val['temperature']}br/br /";
}
?
8、返回的內(nèi)容如下:
其實我覺得你的思路存在問題。首先,你不應(yīng)該再存到自己的數(shù)據(jù)庫中,因為航空公司那邊的機票是實時變化的,你保存到自己的數(shù)據(jù)庫后,如果你不是根據(jù)他那邊的數(shù)據(jù)實時變化,那么你這邊的數(shù)據(jù)就不準(zhǔn)了。如果你要根據(jù)他那邊的數(shù)據(jù)的變化再變化,那么你處理得很多,比如那邊每賣一次、或退一次。。。可能還有其他可能 ,你都得進行處理,而這種情況就得像觸發(fā)器才能合理,你總不能每秒去他那邊取。
所以建議不用自己的數(shù)據(jù)庫,既然是接口那你直接要到那邊的接口,用什么查什么,總能保證數(shù)據(jù)是最正確的,因為畢竟是從他的數(shù)據(jù)庫里讀到的數(shù)據(jù)。如果他不能給你提供你所要的接口,那這種做法本身就實現(xiàn)不了。
兩種比較簡單的方法:
1、使用curl
$url?=?"";
$ch?=?curl_init();
curl_setopt($ch,?CURLOPT_URL,?$url);
curl_setopt($ch,?CURLOPT_RETURNTRANSFER,?1);
curl_setopt($ch,?CURLOPT_TIMEOUT?,?30);
$output?=?curl_exec($ch);
curl_close($ch);
echo?$output;
2、使用file_get_contents
$output?=?file_get_contents($url);
echo?$output;
3 、使用socket 也是可以的