클라이언트에서만 Google+1 점유율 획득 & Facebook 점유율 획득에 대한 특별한 상황 & 조금만 홍보해 주세요.
9808 단어 jQueryYQLJavaScriptFQL
Google+1 할당량 획득 경로
제 1 장 Google+1 공략 작전
항간에 소개된 공유수를 얻는 정보는 기본적으로 트위터, 페이스북, 끝에 있는 책갈피뿐이다.
왜냐면 상기 3개 서비스는 공식 점유율 API를 준비했기 때문이다.
SNS 분야에서 한동안 구타를 당했던 인터넷 괴물, 그 구글은 공유수의 API를 얻지 못했다.
공식 버튼을 사용할 수 있기 때문인가요?
그래도 역시 Google+1의 점유율을 갖고 싶어서 보내봤는데 이런 게 있더라고요.
공식 Google+1 버튼은 전용 스크립트를 불러옵니다. 이 스크립트는 페이지에 내장된 프레임워크를 만들고 거기에 단추 부분을 삽입하는 HTML과 같은 처리를 합니다. 단, 그 삽입된 HTML 자체를 직접 얻고 그 중에서 몫을 추출하는 숫자와 같은 능력을 발휘합니다.이 방법으로 몫을 얻을 수 있을 것 같습니다.
그렇다면 문제는 여기서부터 시작된다. 상술한 보도는 PHP를 통해 얻어진 것이다. 즉, 서버에서만 할 수 있는 방법이다. 클라이언트가 jQuery로 같은 일을 하더라도'교차역이기 때문에 하지 말라'는 것이다.
간단한 해결 방법은 서버에서 Google+1개의 액수를 얻을 수 있는 소형 스크립트를 준비하는 것이다. 이와 조립하여 이동하면 목적을 달성할 수 있다
제2장 그건 하나도 쉽지 않아!
역시 jQuery 플러그인으로 얻고 싶어요.
어딘가에 있어야 하는데... 구글 피드 API 같은 중계 서비스는 RSS 이외에도 지원됩니다.
그래서 찾아보니 YQL이라는 Yahoo가 제공하는 서비스는 SQL 형식으로 인터넷상의 각종 자원을 지정하고 얻을 수 있을 것 같다.
참조 사이트: http://hail2u.net/blog/coding/you-can-do-it-with-yql.html
이게 이거야.이것과 아까 Google+1 버튼의 점유율을 조합하면 공략을 완성할 수 없습니다.부시시
그럼 $.나는 aax로 이런 요구를 뛰어넘어 보았다.
http://query.yahooapis.com/v1/public/yql?q=SELECT * FROM html WHERE url='https://plusone.google.com/_/+1/fastbutton?hl=ja&url={シェア数を取得したいURL}'
# 実際にはパラメータのURLエンコードが必要
어?얻을 수 없습니까?그래서 YQL Console 확인을 해봤어요.제3장 압도적인 역전 거부
Redirected to a robots.txt restricted URL: https://plusone.google.com/_/+1/fastbutton? ...
구글의 로봇.txt한테 거절당했어요.오바타하지만 포기하면 경기가 끝날 것 같아서 조금만 더 버텨보자.
그래서 찾았어요.YQL에는 Open Data Table이라는 플러그인 기능이 있는데, 그 중
data.header
플러그인을 사용하면 구글에 접근할 수 있을 것 같습니다.참조: http://stackoverflow.com/questions/9200513/yql-redirected-to-a-robots-txt-restricted-url-error-for-google-domain
참조: http://hail2u.net/blog/coding/jquery-query-yql-plugin-supports-open-data-tables.html
이것들을 참고하세요, 방금 $.ajax 요청의 URL이 수정되었습니다.
http://query.yahooapis.com/v1/public/yql?q=SELECT content FROM data.headers WHERE url='https://plusone.google.com/_/+1/fastbutton?hl=ja&url={シェア数を取得したいURL}' and ua='#{それっぽいUser-Agent}'&env=http://datatables.org/alltables.env
# 実際にはパラメータのURLエンコードが必要
YQL 콘솔 수정 오, HTML 획득!그리고 이 HTML을 엉망진창으로 만들었어요.
나온다!
이런 느낌은 구글 +1 버튼의 몫으로 가득 차 있다.
기쁘고 축하할 만하다.
이것은 페이스북이 정확한 시장 점유율을 얻을 때까지 어려운 이야기이다
1장 어?페이스북의 시장 점유율은 공식적인 좋은 버튼의 숫자와 다르죠?
항간에 자주 소개되는 페이스북의 점유율을 얻는 방법은 바로 이런 느낌이다.
https://graph.facebook.com/{シェア数を取得したいURL}
보통 이 요청을 건너뛰면 이런 JSON을 받을 수 있습니다.{
"shares": 100,
"id": "{指定したURL}"
}
일반적으로 이것shares
은 공식적인 좋아요 버튼의 숫자와 같다고 생각한다.하지만 일부 사이트에 이런 JSON이 있다.
{
"were_here_count": 0,
"talking_about_count": 0,
"name": "{サイト名}",
"link": "{指定したURL}",
"likes": 2,
"is_published": true,
"is_community_page": false,
"id": "{数字のみで構成されたID}",
"about": "{サイトの説明ぽい}",
"app_id": "0",
"can_post": false,
"category": "Website",
"checkins": 0,
"description": "{サイトの説明ぽい}",
"has_added_app": false
}
이것은 무엇입니까?그렇게 생각하지만 OGP(Open Graph Protocol)를 설정한 사이트에서 이런 JSON이 돌아오는 것 같다.곤란한 것은 이 JSON에는
shares
항목이 없다는 것이다.likes
의2 그런거 아닌가요?그렇게 생각하지만 이때 체크한 사이트의 좋은 버튼의 숫자는 7이다.제2장 그러면 플랜B.
페이스북의 점유율을 얻을 수 있는 다른 방법도 있다.Facebook Query Language.
참조 사이트: http://www.imamura.biz/blog/sns/facebook/8393
따라서 우리는 FQL로 같은 사이트의 점유율을 얻기로 결정했다.
https://graph.facebook.com/fql?q=SELECT total_count FROM link_stat WHERE url='{シェア数を取得したいURL}'
# 実際にはパラメータのURLエンコードが必要
이런 느낌으로 요구를 넘어가면 이런 JSON을 얻을 수 있다.{
"data": [
{
"total_count": 5
}
]
}
이것total_count
이 바로 시장 점유율이다.그거?아니오
싫더라도 대부분의 경우 이렇게 할 수 있을 것이다.정말, 막대사탕 하나 주세요.
제3장?2 + 5 = 7?수다 떨다
진짜예요?그렇게 생각하지만 진짜인 것 같아요.누군가가 외국 논단에서 같은 현상을 만났다.
지금 404입니다.세상에.
요컨대 총결해 보자
shares
그대로 유지likes
, FQL이 취득한 경우total_count
에 추가likes
가 없으면 FQL의 total_count
불변이런 순서대로 해보면 공식적인 좋은 버튼과 같은 숫자를 얻을 수 있을 것 같다.
페이스북에 관해서는 지금 이렇게 하면 문제가 없다.
JQuery POP'n Social Button을 살짝 홍보하는 것도 이에 대응했다.
jQuery POP n SocialButton에 대한 자세한 내용은 이전 게시물 을 참조하십시오.
쉽게 말하면 각종 SNS 서비스의 사용자 정의 공유 단추를 표시할 수 있는 jQuery 플러그인이다.
이러한 느낌은 Google+1 버튼에 해당합니다.
GitHub 저장소의 스타 수 표시 버튼도 설치되어 있습니다.
이 정보에 참고할 게 있으면 좋겠어요.
Reference
이 문제에 관하여(클라이언트에서만 Google+1 점유율 획득 & Facebook 점유율 획득에 대한 특별한 상황 & 조금만 홍보해 주세요.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ktty1220/items/d1df9c66ca2663af03c7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)