如何使用Google App Script的facebook片段将图像发布到Facebook页面?

问题描述 投票:-1回答:1

我正在尝试设置一个基于Google App Script和Google表格的小应用程序到目前为止,我能够获得Facebook页面提要并能够通过Oauth2库连接到Facebook应用程序并获得令牌

所以我很难写出发布到Facebook的代码,

目前我获得了facebook页面提要但来自facebook的帖子格式文档是指javascript SDK,这里我没有使用SDK和图形API引用POST和GET请求我认为这也不起作用。这是我获取Facebook令牌和页面提要的代码。

有人将此称为重复但这些问题和答案不适合我的问题,我想要facebook post格式如果它与有效载荷包括那些有效载荷选项或有人可以编辑下面的代码POST

我能够使用页面访问令牌发布到页面而不是用户访问令牌,并且粘贴该页面访问令牌也会引发相同的错误。

更新的代码但错误如下所示


https://graph.facebook.com/v3.2/PAGE / feed请求失败?message = hello?access_token = TOKEN返回代码403.截断的服务器响应:{“error”:{“message”:“(#200)如果发布到组,则需要在组中安装app ,和\\ n要么发布_to_groups权限...(使用muteHttpExceptions选项检查完整响应)(第53行,文件“FB postinf”)

代码已更新

 function example() {

var service = getService();
  if (service.hasAccess())
   var data = {
    "message" : "Me Testing",
    //"slug" : "me-testing",
   // "text_to_subscribe" : "true"
  };
  var payload = JSON.stringify(data);
  var options = {
    "method" : "POST",
    "contentType" : "application/json",
    "payload" : payload
  };
  var url = "https://graph.facebook.com/v3.2/PAGENAME/feed?message=hello?access_token=ManuallyPastedTOKEN";
  // + '?access_token=' + encodeURIComponent(service.getAccessToken());
  var response = UrlFetchApp.fetch(url, options);
  }


这是使用OAuth2 GET FEED

function sasublish(){

var service= getService()
if (service.hasAccess()) {

  var url = 'https://graph.facebook.com'
    + '/pagename/feed'
    +'?fields='+ encodeURIComponent("name,full_picture,message,attachments{subattachments,url}")

  +'&access_token='+ service.getAccessToken();


    var response = UrlFetchApp.fetch(url, {'muteHttpExceptions': true});

    var json = response.getContentText();
    var jsondata = JSON.parse(json);
 } 
javascript facebook-graph-api google-apps-script http-status-code-403
1个回答
0
投票

经过一些尝试,我想出了如何通过Google App脚本发布到网页

需要oAuth2和Facebook.gs片段Facebook APP应该处于开发模式,如果它是在2018年8月之后创建的.setScopes('publish_pages,manage_pages,pages_show_list')应该添加到facebook.gslink to facebook.gs snippet

function example() {
var service = getService();
  if (service.hasAccess())
 var urls ='https://graph.facebook.com/v2.6/PAGEID?fields=access_token'; //specified page token
   //  var url = 'https://graph.facebook.com/v2.6/me/accounts?';   //tokens along with pages 
 
  var response = UrlFetchApp.fetch(urls, {       //make url and urls changes
      headers: {
        'Authorization': 'Bearer ' + service.getAccessToken()
      }
    });
    var result = JSON.parse(response.getContentText());
    Logger.log(JSON.stringify(result , null, 2));
   //Logger.log(JSON.stringify(result.data[0].access_token))

 
 
 var datas = {
    "message" : "Me Testing",
    //"slug" : "me-testing",
   // "text_to_subscribe" : "true"
  };
  var payload = JSON.stringify(datas);
  var options = {
    "method" : "POST",
    "contentType" : "application/json",
    "payload" : payload
  };
  var url = "https://graph.facebook.com/v3.2/PAGEID/feed"
 + '?access_token=' + encodeURIComponent(result.data[0].access_token);
  // + '?access_token=' + encodeURIComponent(result.access_token);//direct pagetoken
  var response = UrlFetchApp.fetch(url, options);
  Logger.log('successfully posted to facebook page ',response)
  }
© www.soinside.com 2019 - 2024. All rights reserved.