chatwork에서 날씨 예보 【chatwork API】

13450 단어 ChatworkPHP

내일 맑을까



매일 밤 내일 날씨를 알려주면 편리하다고 생각해…

livedoor 날씨 API 사양




(예) 「후쿠오카현・쿠루메의 날씨」를 취득하는 경우
아래 URL로 이동하여 JSON 데이터를 검색합니다.
기본 URL + 쿠루메의 ID(400040)
ぇ tp // 우아아테 r. 아오오오 r. 코 m/후우레카 st/우ぇb세rゔぃ세/j 그런/v1? ty = 400040

php로 chatwork에 게시



chatwork
<?php

  $cityid = 取得したい地区のID;
  $url = 'http://weather.livedoor.com/forecast/webservice/json/v1?city='.$cityid.'';
  $json = file_get_contents($url, true);
  $json = json_decode($json, true);

  // Public
  $title = $json['title'];
  $description = $json['description']['text'];
  $publicTime = $json['publicTime'];
  $copyright = $json['copyright']['title'];
  $copyrightLink = 'http://weather.livedoor.com/area/forecast/';
  //$json['copyright']['link']

  // Location
  $city = $json['location']['city'];                
  $area = $json['location']['area'];               
  $prefecture = $json['location']['prefecture'];    
  $link = $json['link'];
  $pinpoint = $json['pinpointLocations'];


  //forecasts
  foreach ($json['forecasts'] as $entry) {
    $dateLabel = $entry['dateLabel'];                               
    $telop = $entry['telop'];                                       
    $date = $entry['date'];                                         
    $min = $entry['temperature']['min'];                            
    $max = $entry['temperature']['max'];                            
    $mincelsius = $entry['temperature']['min']["celsius"];          
    $minfahrenheit = $entry['temperature']['min']["fahrenheit"];    
    $maxcelsius = $entry['temperature']['max']["celsius"];          
    $maxfahrenheit = $entry['temperature']['max']["fahrenheit"];    
    $image = $entry['image']["url"];                               

    // NULL
    if (!isset($min)) { $mincelsius = "--"; }
    if (!isset($max)) { $maxcelsius = "--"; }
    if (!isset($celsius)) { $min = "--"; }
    if (!isset($fahrenheit)) { $min = "--"; }

    }

    $forecasts = $json['forecasts'];

    $body  = "";
    $body .= "[info][title]明日".$forecasts[1]['date']."のお天気[/title]".
             "明日は『".$forecasts[1]['telop']."』\n".
             "最高気温".$forecasts[1]['temperature']['max']["celsius"]."℃\n".
             "最低気温".$forecasts[1]['temperature']['min']["celsius"]."℃\n".
             "©".$copyrightLink;
             "[/info]"."\n".
    $option = array('body' => $body);
    $ch = curl_init();
    /*表示させたいチャットのルームID*/
    $room_id = 000000;
    curl_setopt($ch, CURLOPT_URL, 'https://api.chatwork.com/v1/rooms/'.$room_id.'/messages');
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-ChatWorkToken:チャットワークのAPIキー'));
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($option, '', '&'));
    $response = curl_exec($ch);
    curl_close($ch);

cron으로 매일 밤 정시에 PHP를 시작



렌탈 서버라면 컴파네에서 간단하게 설정할 수 있습니다.
사쿠라 서버로 할 수있었습니다.

이미지





참고 사이트



날씨 정보 API Weather Hacks를 PHP에서 사용해 보았습니다.

webrawl님, Livedoor 날씨 부분 박등 참고로 했습니다.

좋은 웹페이지 즐겨찾기