2017-09-28 4 views
0

특정 요구 사항을 충족하는 상위 게시물의 모든 댓글에 내 댓글을달라고 스크립트를 작성하려고합니다. 텍스트를 안정적으로 게시 할 수는 있지만 사진 첨부 파일을 표시 할 수없는 것 같습니다. 저는 Python3에서 프로그래밍하고 Facebook-SDK 라이브러리를 사용하여 도움을줍니다.Graph API 첨부 사진 첨부 파일

내가 찾은 그래프 API 문서를 읽을 때 주석의 가장자리에 설명 된 다음 필드 :

가 게시되지 않은 사진의 선택적 ID가 (/ {사용자 ID}에서 no_story 필드를 참조 attachment_id

/사진)을 Facebook에 업로드하여 사진 댓글로 ​​포함 할 수 있습니다. 게시 할 때 attachment_url, attachment_id, message 또는 source 중 하나를 제공해야합니다. (문자열)

attachment_url

이미지의 URL은 사진의 주석으로 포함합니다. 게시 할 때 attachment_url, attachment_id, message 또는 source 중 하나를 제공해야합니다. (문자열)

소스

형태 데이터로서 부호화 사진은 사진 주석으로 사용한다. 게시 할 때 attachment_url, attachment_id, message 또는 source 중 하나를 제공해야합니다. (다중/폼 데이터)

내 코드는 현재 (나는이 문제에 관련된 부분 코드를 제공 한)과 같은 포맷

:

my_dict = { 
    0: ('file_1.JPG', "Some text for file 1"), 
    1: ('file_2.jpg', "Different text for file 2"), 
    2: ('file_3.JPG', "More different text for file 3"), 
    3: ('file_4.JPG', "A fourth bit of text for file 4.") 
} 

comments = api.get_object('PAGE.NUMBER.HERE?fields=posts{comments}') 
com_index = comments['posts']['data'][0]['comments']['data'] 
photo_id = my_dict[x][0] 
my_image = 'file:///Users/filepath/{}'.format(photo_id) 
text = my_dict[x][1] 
api.put_object(com_index[com_index]['id'], "comments/comments", source=(my_image, 'image/jpg'), message=text) 

내가 함께 및없이 모두 노력했습니다 ' 원본 튜플에서 "image/jpg"인수를 사용합니다.

대신에 '소스'를 사용하는 나는 또한 시도했다 : attachment_url를 사용하는 경우

attachment_url=card_image 
attachment=card_image 

내가 잘못된 URL 오류가; 다른 매개 변수를 사용할 때 텍스트는 항상 게시되지만 사진은 게시되지 않습니다.

마지막으로, 내가 대신 다른 주석의/코멘트 가장자리의 코멘트의/사진 가장자리로 가장자리를 변경하려고했지만, 여전히 (아래) 운 :

api.put_object(com_index[comment]['id'], "comments/photo", source=(my_image, 'image/jpg'), message=text) 

은 무엇 없다 첨부 파일이있는 회신을 게시하는 적절한 방법은 무엇입니까?

답변

0

. this을 확인하십시오.

+0

나는 독서, 롤의 낱단 후에 정상에 저 경고를 보았다. 파머.하지만 여전히 텍스트를 게시 할 수있는 의견을 얻을 수 있기 때문에 여전히 작동하는 것 같습니다. 사진을 제대로 첨부 할 수 없습니다./comments 가장자리가 더 이상 사용되지 않으면 텍스트를 게시하는 주석을 얻는 데 성공했는지 이해할 수 있습니까? – Hanzy

+0

조사가 끝나면 개인 답장을 보내기 위해 스크립트를 구현해야하는 것처럼 보입니다. 개인 답장에 첨부 파일 또는 사진 인수를 전달할 수 있습니까? 설명서는 첨부 파일 필드를 나열하지 않으므로 나는 추정하지만 Fb 메신저에서 사진을 보낼 수 있습니다. https://developers.facebook.com/docs/graph-api/reference/v2.10/object/private_replies – Hanzy

0

나는 파이썬 사람이 아니지만, 아마도이 어쨌든 노력하고, 나는 {objet-id}/comments가 버전 2.10 이후 감가 상각 생각)

my_dict = { 
    0: ('file_1.JPG', "Some text for file 1"), 
    1: ('file_2.jpg', "Different text for file 2"), 
    2: ('file_3.JPG', "More different text for file 3"), 
    3: ('file_4.JPG', "A fourth bit of text for file 4.") 
} 

comments = api.get_object('PAGE.NUMBER.HERE?fields=posts{comments}') 
com_index = comments['posts']['data'][0]['comments']['data'] 
photo_id = my_dict[x][0] 
my_image = 'file:///Users/filepath/{}'.format(photo_id) 

photo = open(my_image) 
text = my_dict[x][1] 

api.put_object(com_index[com_index]['id'], "comments/comments", source=photo.read(), message=text) 
photo.close() 
+0

감사합니다. 베개를 사용하여 이미지 객체를 생성하여 API에 이미지 객체를 전달할 것을 고려했습니다. 그것은 당신의 제안에 대한 비슷한 접근법이 될 것이므로, 나는 그것을 시도 할 것입니다. 나는 단지 객체 대신 파일 경로를 전달해야한다고 가정하고 있지만 시도해 볼만한 가치가있다. – Hanzy

+0

내 실수는 객체를 표시하는 메서드로 객체를 전달할 생각이 없다는 것을 의미했습니다. 그러나 나는 시험해 볼 것이다 – Hanzy

관련 문제