当前位置: 首页 > 知识库问答 >
问题:

IBM Social Business SmartCloud OAuth 2.0发布新事件

严阳秋
2023-03-14

我试图发布一个事件到我的IBM社交业务SmartCloud帐户。我已经能够授予对应用程序的访问权限,并获得访问和刷新令牌。但是当发布新的甚至我得到一个401错误“没有'访问-控制-允许-起源'头存在于请求的资源上。”

    function postEvent(){
    var postString = '{'+
    '"actor": {'+
      '"id": "@me"'+
    '},'+
    '"verb": "post",'+
    '"title": "${share}",'+
    '"content":"This event is my <b>first content</b>",'+
    '"updated": "2012-01-01T12:00:00.000Z",'+
    '"object": {'+
      '"summary": "My Summary",'+
      '"objectType": "note",'+
      '"id": "someid",'+
      '"displayName": "My displayName",'+
      '"url": "mydomain.com"'+
    '}}';
    $.ajax({
      url: 'https://apps.na.collabserv.com/connections/opensocial/basic/rest/activitystreams/@me/@all?format=json&access_token=<access_token>',
      data: postString,
      contentType: 'application/json',
      method: 'POST',
      dataType: 'json', 
      headers: {
              // Set any custom headers here.
              // If you set any non-simple headers, your server must include these
              // headers in the 'Access-Control-Allow-Headers' response header.
              'Content-Type: application/json',
              'Origin': 'https://mydomain.com/',
              'Access-Control-Allow-Headers' :'*',
              'Access-Control-Allow-Origin': '*'
          }
      }).done(function(data) {
          console.log(data);
      });
}

这是一个使用file_get_contents的代理方法,我用它在php中工作,但cURL不起作用。

$post=file_get_contents('https://apps.na.collabserv.com/connections/opensocial/basic/rest/activitystreams/@me/@all?超文本传输协议stream_context_create

现在的问题是,即使我们互相跟踪,其他人也看不到我的帖子。

得到了json结构,用于将带有og标签的网页嵌入到我的ibm sb活动流中。因此,视频直接在我的流中打开,带有缩略图,而无需在新窗口中链接




    $json_data = '{"content":"https://mydomain.com/somevideo/",
    "attachments":[{"objectType":"link",
        "displayName":"My Display Name",
        "url":"https://mydomain.com/somevideo/",
        "summary":"My summary",
        "image":{
            "url":"{thumbnail}/api/imageProxy?url=http%3a%2f%2fmydomain.com%2fsomevideo%2fthumbnail.jpg",
                "alt":"My Display Name"
            },
        "connections":{
            "video":{
                "connections":{"mime-type":"application/x-shockwave-flash"},
            "width":"853",
            "height":"480",
            "url":"https://mydomain.com/somevideo/"
            }
        }
    }
    ]
    }';


然后您将发布到此url:https://apps.na.collabserv.com/connections/opensocial/rest/ublog/@我/所有人?格式=json


共有1个答案

长孙阳焱
2023-03-14

只要您的代码托管在与apps.na.collabserv.com不同的域上,您就不能单独使用JavaScript访问REST API

在这种情况下,是浏览器阻止了您。跨源标头将不起作用,因为后端未配置为启用CORS请求。

您可以通过通过部署在页面所在的同一域上的ajax代理访问restapi来解决这个问题

 类似资料:
  • 我有两个独立的应用程序运行在同一服务器上。 null 我已经实现了从用户管理到钱包管理的事件来源。它运行得很好。 但是,当我将从钱包管理应用程序中的事件处理程序发布新事件时,我将收到以下错误消息日志。 以下是我的日志详细信息

  • 是否有任何方法可以暂停EventBus从guava库发布的事件。 我有一个发布事件的方法(例如,SomethingChangedEvent)。现在,这个方法在循环中被另一个方法调用。问题是,每次调用时都会发布,即使只有最后一次更改才重要。由于事件的处理程序执行一些重计算,因此应用程序的性能会快速下降。 最后一次执行后,我想告诉guava恢复事件处理。 有没有办法告诉番石榴,除了最后一个,不要理会所

  • 我们有一个常春藤知识库,我们正在使用gradle进行依赖关系管理和构建框架。当一个工件被确定为生产就绪时,我们不想再次构建它,所以我们只想通过一个web应用程序“升级”一个现有的工件,该应用程序利用Gradle和工具API为我们完成大部分工作。 目前,我正在将工件复制到本地文件夹并运行另一个重新发布它的build.gradle。我们正在将其发布到现有存储库中的新文件夹和发布存储库中的文件夹。 这样

  • 问题内容: 我如何对帖子进行排序,以便最近的活动排在最前面? 我想按最新顺序对帖子进行排序,其中新帖子显然比以前发布的帖子要新,但是具有最新评论的旧帖子也可以视为最新帖子。 第一次尝试 这不起作用,因为新帖子在带有评论的旧帖子之后排序。 第二次尝试 不起作用,因为如果帖子中有多个评论,则 新近度 将匹配第一行的 创建 值,这是最早的评论。 有没有一种方法可以 按p.id分组(因此,每个帖子仅选择一

  • REST服务器可以配置为订阅从已部署的业务网络发出的事件,并发布这些业务事件供客户端应用程序使用。目前,REST服务器支持通过WebSockets向客户端应用程序发布事件。 客户端应用程序可以使用WebSocket客户端来订阅由REST服务器发布的业务事件。WebSocket客户端可用于所有主要编程语言和应用程序类型,例如客户端Web用户界面、后端服务器进程、移动应用程序和集成工具。 启用WebS

  • 此处的文档:http://www.rabbitmq.com/semantics.html 声明当信道关闭时,它被重新分配以进行传递 消息可以使用以requeue参数(Basic.recover、Basic.reject和Basic.NACK)为特征的AMQP方法返回到队列,也可以由于在保留未确认消息时通道关闭而返回到队列。对于2.7.0之前的RabbitMQ版本,这些场景中的任何一个都会导致消息在