Facebook Graph API 2.0에서 사용자 이름 필드 가져 오기
"이전"Facebook Graph API에는 사람이 읽을 수있는 프로필 URL을 만드는 데 사용할 수있는 "사용자 이름"필드가 있습니다. 예를 들어 내 사용자 이름은 "sebastian.trug"이며 결과적으로 Facebook 프로필 URL http://www.facebook.com/sebastian.trug가 됩니다.
Graph API 2.0에서 Facebook은 "/ me"에서 검색된 사용자 데이터에서 "username"필드 를 제거했습니다 .
2.0 API를 통해이 데이터를 가져올 수있는 방법이 있습니까? 아니면 "사용자 이름"이 이제 사용되지 않는 필드로 취급됩니까?
사용자 이름은 Facebook을 통해 이메일을 보내는 한 가지 방법이기 때문에 Facebook은 사용자 이름을 제거했습니다.
예를 들어 URL이 주어지면 http://www.facebook.com/sebastian.trug
해당하는 Facebook 이메일은 sebastian.trug@facebook.com
이메일로 전송되는 경우 messages
직접 ( message
설정이로 설정된 경우 public
), 그렇지 않으면 other
받은 편지함으로 수신됩니다.
username
User 개체 의 필드가 제거되었으며 Graph API v2.0에는 존재하지 않습니다. API v2.0에서는 사용자의 FB 사용자 이름을 가져올 수있는 방법이 없습니다.
출처 : https://developers.facebook.com/docs/apps/changelog#v2_0_graph_api
"/ me / username은 더 이상 사용할 수 없습니다."
@Simon Cross-더 이상 사용되지 않는 것이 문서화되어 있습니다. 그것은 문제가 아닙니다. 문제는 그것을 얻는 방법과 더 나아가 Facebook이 왜 그렇게 끔찍한 선택을하고 사용자 이름을 제거했는지 궁금합니다. 사용자 이름을 사용하여 서비스에 계정을 만드는 수백 개의 애플리케이션이 손상됩니다.
@ user3596238-2015 년 4 월 말까지 제공 될 V.1 API를 고수 할 수 있습니다. 단연 최고의 솔루션은 아니지만 Facebook은 어쨌든 관련성이 없을 수 있습니다. https://developers.facebook.com/docs/apps/changelog
해결 방법 : 사용자에게 실제 Facebook 로그인 외에 사용자 이름을 요청합니까? -제 생각에는 어쨌든 Facebook 로그인이 완전히 무의미합니다.
2.0 SDK는 username
더 이상 필드를 제공 하지 않지만 사용자 ID 번호 (그래도 그래프에 액세스하는 데 사용할 가능성이 높음)가 있으면 매우 쉽게 스크랩됩니다.
URL은로 facebook.com/<user id>
리디렉션되며 facebook.com/<username>
원하는대로 추출 할 수 있습니다.
내 접근 방식은 사용자 프로필을 통해 nokogiri를 사용하여 사용자 이름을 스크랩하는 것입니다. 다음과 같이 (루비에서) :
html = RestClient.get("http://facebook.com/123123xxx)
doc = Nokogiri::HTML(html)
username = doc.css('head meta')[1].attributes["content"].value
방법 중 하나는 cURL을 사용하여 facebook.com/{userid}에 액세스 한 다음 리디렉션을 따르는 것입니다.
페이지가 facebook.com/{username}으로 다시 지정됩니다.
@RifkiFauzi의 답변 에서 영감을 얻은 여기 순수한 Python으로 된 내 솔루션이 있습니다.
#get html of a page via pure python ref. https://stackoverflow.com/a/23565355/248616
import requests
r = requests.get('http://fb.com/%s' % FB_USER_ID) #open profile page of the facebook user
r.raise_for_status()
html = r.content
#search string with regex ref. https://stackoverflow.com/a/4667014/248616
import re
# m = re.search('meta http-equiv="refresh" content="0; URL=/([^?]+)\?', html)
m = re.search('a class="profileLink" href="([^"]+)"', html)
href = m.group(1) #will be https://www.facebook.com/$FB_USER_NAME on 201705.24
username = href.split('/')[-1]
print(href)
print(username)
https://graph.facebook.com/?id=100005908663675
간단히 ID를 변경하십시오.
참조 URL : https://stackoverflow.com/questions/23428498/get-username-field-in-facebook-graph-api-2-0
'Development Tip' 카테고리의 다른 글
Flask 앱의 공통 폴더 / 파일 구조 (0) | 2020.12.25 |
---|---|
iOS 7의 기본 공유 (0) | 2020.12.25 |
Eclipse Luna 어두운 테마, 코드 편집기 흰색 (0) | 2020.12.25 |
뷰를 사용하는 쿼리에서 WITH NOLOCK 테이블 힌트 사용-뷰 내에서 전파됩니까? (0) | 2020.12.25 |
Haskell 상태 모나드를 사용하면 코드 냄새가나요? (0) | 2020.12.25 |