Hubot에서 고양이 Vine을 데리러 팀에게 치유

8965 단어 Hubot

코드



tabi.coffee
module.exports = (robot) ->
  robot.respond /(tabi|たび|(癒|いや)し)/i, (msg) ->
    robot.http("https://api.vineapp.com/timelines/users/1038468495395958784") # ざわちゃんのuserid
      .get() (err, res, body) ->
        records = JSON.parse(body)['data']['records']
        tabis = []
        for record in records
          # ざわちゃんは複数タグつけないと思うので配列0ハードで
          # https://twitter.com/shelf703/status/616130432418095104
          if record.entities[0]?.id == 1138830969860853760 # tag"#たび"のid
            tabis.push(record.shareUrl)
        msg.send msg.random tabis

해설·과정



치유 콘텐츠



치유의 대명사인 고양이
h tps:///ゔぃ네. 코/우/1038468495395958784

api가있는 것 같기 때문에 curl로 두드려 보자.


$ curl -s https://api.vineapp.com/timelines/users/1038468495395958784 -X GET | python -mjson.tool
{
    "code": "",
    "data": {
        "anchor": 1199308322436804608,
        "anchorStr": "1199308322436804608",
        "backAnchor": "1217408396299509760",
        "count": 79,
        "nextPage": 2,
        "previousPage": null,
        "records": [
            {
                "avatarUrl": "http://v.cdn.vine.co/r/avatars/38C93AC8CA1038468503772205056_137eac0d903.4.7_v2Cn1oY3wssbcjsNYX_DhPB1eMqHWaUvVf03oJPqQo4n4nj.SA5VFlyKagUaXSMo.jpg?versionId=b1s9TFAblLwdBQ8oUCd93UQLTyFE28Ep",
                "blocked": 0,
                "comments": {
                    "anchor": null,
                    "anchorStr": null,
                    "backAnchor": "",
                    "count": 0,
                    "nextPage": null,
                    "previousPage": null,
                    "records": [],
                    "size": 10
                },
                "created": "2015-06-02T06:36:34.000000",
                "description": "#\u305f\u3073",
                "entities": [
                    {
                        "id": 1138830969860853760,
                        "link": "vine://tag/%E3%81%9F%E3%81%B3",
                        "range": [
                            0,
                            3
                        ],
                        "title": "\u305f\u3073",
                        "type": "tag"
                    }
                ],
                "explicitContent": 0,
                "followRequested": 0,
                "following": 0,
                "foursquareVenueId": null,
                "liked": 0,
                "likes": {
                    "anchor": null,
                    "anchorStr": null,
                    "backAnchor": "",
                    "count": 0,
                    "nextPage": null,
                    "previousPage": null,
                    "records": [],
                    "size": 10
                },
                "loops": {
                    "count": 76.0,
                    "onFire": 0,
                    "velocity": 0.0
                },
                "myRepostId": 0,
                "permalinkUrl": "https://vine.co/v/ehppuW2Xvpa",
                "postId": 1217408396299509760,
                "private": 0,
                "profileBackground": "0x33ccbf",
                "promoted": 0,
                "reposts": {
                    "anchor": 0,
                    "anchorStr": "0",
                    "backAnchor": "",
                    "count": 0,
                    "nextPage": null,
                    "previousPage": null,
                    "records": [],
                    "size": 10
                },
                "shareUrl": "https://vine.co/v/ehppuW2Xvpa",
                "tags": [],
                "thumbnailUrl": "http://v.cdn.vine.co/r/videos/368B21E1961217408385885585408_3e75c67fd9e.3.3.2180569995895087565.mp4.jpg?versionId=J6EwcuLJSRmMUqyRXEACHtniepQuIY6F",
                "userId": 1038468495395958784,
                "username": "shelf",
                "vanityUrls": [],
                "verified": 0,
                "videoDashUrl": "http://mtc.cdn.vine.co/r/videos_h264dash/368B21E1961217408385885585408_3e75c67fd9e.3.3.2180569995895087565.mp4?versionId=QwED.ccJfew_pzNVFXP_Y6cYqqQ7o5OK",
                "videoLowURL": "http://mtc.cdn.vine.co/r/videos_r2/368B21E1961217408385885585408_3e75c67fd9e.3.3.2180569995895087565.mp4?versionId=tZ4bk3a6uZN2mO_MvrkZ_o4mQ6vVLmCU",
                "videoUrl": "http://mtc.cdn.vine.co/r/videos/368B21E1961217408385885585408_3e75c67fd9e.3.3.2180569995895087565.mp4?versionId=GLPtLJkrq45ThrdxqsgUyzS.CY1C1jJk",
                "videoWebmUrl": null
            },
            // 省略
        ],
        "size": 10
    },
    "error": "",
    "success": true
}


일본어가 유니코드 hiragana이다.
태그에 id가 흔들리고 있는 것 같고, data.records[].entities[].id에 써 있다.#たび1138830969860853760이었다.

동기·감상







bot 키우기의 너무 즐거워서 본 제품의 개발에 영향을 줄 수 있는 것, 너무 무서워.
제대로 태그를 붙이고 있는 자와, 매우 위대하다.

참고


  • Hubot | 자작 스크립트 | Hubot에서 '포토 창고' API 결과 얻기 - Qiita
  • Vine의 비공식 API 사용 요약 (샘플 코드 포함)
  • hubot/scripting.md at master · github/hubot
  • 명령 줄에서 json을 쉽게 볼 수 있음 - Qiita
  • 좋은 웹페이지 즐겨찾기