fluentd+bookmarklet으로 간이 온라인 북마크의 구조를 만들었다
혹시 이것과 브라우저의 bookmarklet를 조합하면 편리한 것은?
게다가 앞서 언급한 fluent-plugin-hatena-bookmark ( ぃ tp // m / 유이 세키 / ms / f00b3db0 A2c6121f1 A3 ) 도 조합하면, 딱 부에 크로스 포스트할 수도 있는 것은 아닐까?
그래서 봤어.
<source>
type http
port 8888
bind 0.0.0.0
body_size_limit 32m
keepalive_timeout 3s
</source>
<match bkmk.kogaidan.**>
type copy
<store>
type stdout
</store>
<store>
type mongo
host localhost
database bkmk
collection let
</store>
<store>
type hatena_bookmark
consumer_key ****
consumer_secret ****
request_token ****
request_secret ****
</store>
</match>
<match bkmk.kogaidan.**>
의 kogaidan 부분은, 적당한 랜덤 캐릭터 라인으로 바꾸어 두면 안전. 이것은 나중에 북마크 렛 측에도 내장 할 필요가있다.아래 북마크릿의 예
javascript:(function(){var json={tag:['tech','ruby'],title:document.title,url:location.href};var jsonstr=encodeURIComponent(JSON.stringify(json));var isrc='http://example.com:8888/bkmk.kogaidan?json='+jsonstr; var i=new Image();i.src=isrc;document.body.appendChild(i); })();
이것이 하테부의 Bookmarklet등 보다 편리한 것은, js 자체에 태그가 임베드하고 있는 점.
이러한 북마크릿을 미리 대량으로 준비해 두면, 1클릭으로 태그를 입력하는 수고를 생략할 수 있다.
코멘트나 시각 등, 그 밖에 필요한 필드가 있으면 적당히 추가해 갈 수도 있다.
주의하고 싶은 것은, 북마크렛내에서 호출하고 있는 도메인명의 부분.
여기서 localhost 등을 지정하면 브라우저에 따라서는 외부 네트워크상의 사이트에서 로컬 네트워크에 액세스하여 수상한 일을 하고 있는 것이 아닐까 경고해 오는 경우가 있다(Opera는 그러한 거동을 한다).
그 때문에, 여기는 외부 네트워크에 있는 서버를 지정하는지, hosts 파일로 localhost에 적당한 도메인을 할당하는 등의 조작이 필요.
또한 fluentd는 POST에서 JSON을 받기를 기대하고 있는데, img 요소의 src로서 URL을 지정해 GET하고 있는 것에도 주의가 필요.
fluentd의 응답 Content-Type은 text/plain; 그래서 브라우저에 따라서는 이미지로서 로드하려고 하면 에러를 토할 수 있다(Chrome는 그러한 거동을 한다).
그 경우는 아래의 기사를 참고로 fluentd의 Content-Type을 다시 쓰면 좋아할 수 있다.
Reference
이 문제에 관하여(fluentd+bookmarklet으로 간이 온라인 북마크의 구조를 만들었다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yuiseki/items/19535daba3fad361b877텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)