私たちのツールは、接続 API を使用して、設定されたコミュニティの ID ブログにブログ エントリを送信しています。
したがって、コミュニティ ID のみを指定して、次のワークフローを使用します。
1) query /blogs/api/blogs?commUuid=<ID_HERE>&blogType=ideationblog
2) retrieve the link to the communities ideation blog from the xml result of aboves query. the xPath for this is "/app:service/app:workspace/app:collection[a:category[@term='entries']][1]/@href"
3) post the created blog entry payload to this url.
当方の環境ではこれで問題なく動作しました。しかし、これを顧客に導入したところ、機能しなくなりました。最初のステップの URL は空の xml ドキュメントを返すため、次のステップは実行できません。/blogs/{homepageHandle}/api/blogs?commUuid=&blogType=ideationblog のような顧客サーバーでさまざまな URL をクエリしようとしましたが、これらは正常に動作しますが、上記の API サービス ドキュメントへのクエリは、コレクション要素を含む唯一のものです。私が必要とするリンク。
この URL を取得するために、私ができる他の API 呼び出しはありますか? 私たちの環境では通話が正常に機能しているのに、顧客では失敗する理由を知っていますか? これはアクセス権の問題でしょうか?
おそらく「blogs//api/entries」のような URL を作成して投稿できることは承知していますが、communityUuid しか構成していないため、またそれがまさにその方法であるため、上記の方法をお勧めします。 API ドキュメントで説明されていること:
ServiceDoc -> コレクション -> href
アップデート:
これは本当にSBTの問題かもしれません。空の xml ドキュメントが返されたという私の仮定は間違っていました。むしろ、SBT エンドポイント クラスを介した呼び出しが null を返しているということです。
Endpoint endpoint = EndpointFactory.getEndpoint("connections");
Object result = endpoint.xhrGet("/blogs/api"); // also tried for /blogs/<homepage>/api
これらの URL をブラウザで再度試したところ、完全な結果が得られました。これらすべての問題は、私自身の環境でこれを再現することも、顧客でこれをデバッグすることもできないことです. これから考えられる例外をキャッチしようとしましたが、何もスローされません。結果がnullになるだけです。
明確にするために: 同じ要求が、私たち自身の (Connections 4.0) 環境でも、顧客のブラウザーからでも完全に正常に機能します。もちろん、API 呼び出しと同様にブラウザでも同じユーザーを使用して認証を行っています。
endpoint.isAuthenticationValid();
もtrueを返すので、一見問題はありません...