1

SDK Javadoc では、Community クラスに「setParentCommunity」メソッドはありませんが、CommunityList クラスには getSubCommunities メソッドがあるため、新しいコミュニティの作成時に親コミュニティの Uuid を設定するプログラムによる方法が必要です。REST API は、「rel="http://www.ibm.com/xmlns/prod/sn/parentcommunity" 要素」について言及しています。手がかりを探しているときに、既存のサブコミュニティの XmlDataHandler のノードを確認し、link 要素を見つけました。新しく作成されたコミュニティの XmlDataHandler を取得し、既存のコミュニティのものと同様の href、rel、および type ノードを含むリンク ノードを追加しようとしましたが、コミュニティを更新または再保存しようとすると、不適切な要求エラーが発生しました。実際、n が Node n=dataHandler.getData(); として設定されている dataHandler.setData(n) を呼び出してみたときでも。何の変更もなく、

SubCommunity として作成されるように、新しい Community を作成するときに親 Community を指定するための推奨される方法は何ですか?

4

3 に答える 3

0

サブコミュニティをプログラムで作成する正しい方法は、コミュニティ作成用に POST 要求本文を変更することです。Connections 45 インフォセンターへのリンクは次のとおりです - http://www-10.lotus.com/ldd/appdevwiki.nsf/xpDocViewer .xsp?lookupName=IBM+Connections+4.5+API+Documentation#action=openDocument&res_title=Creating_subcommunities_programmatically_ic45&content=pdcontent SBT SDK では、CommunityService API を使用してこれを行うことはサポートされていません。Endpoint および ClientService クラスを使用する低レベルの Java API を使用して、適切なリクエスト本文で REST API を直接呼び出す必要があります。

于 2013-10-18T13:07:35.760 に答える
0

CommunityService クラスを拡張してから、CommunityService を追加します。

https://github.com/OpenNTF/SocialSDK/blob/master/src/eclipse/plugins/com.ibm.sbt.core/src/com/ibm/sbt/services/client/connections/communities/CommunityService.java 行605 public String createCommunity(Community community) throws CommunityServiceException { if (null == community){ throw new CommunityServiceException(null, Messages.NullCommunityObjectException); }

            try {
                    Object communityPayload;
                    try {
                            communityPayload = community.constructCreateRequestBody();
                    } catch (TransformerException e) {
                            throw new CommunityServiceException(e, Messages.CreateCommunityPayloadException);
                    }
                    String communityPostUrl = resolveCommunityUrl(CommunityEntity.COMMUNITIES.getCommunityEntityType(),CommunityType.MY.getCommunityType());
                    Response requestData = createData(communityPostUrl, null, communityPayload,ClientService.FORMAT_CONNECTIONS_OUTPUT);
                    community.clearFieldsMap();
                    return extractCommunityIdFromHeaders(requestData);
            } catch (ClientServicesException e) {
                    throw new CommunityServiceException(e, Messages.CreateCommunityException);
            } catch (IOException e) {
                    throw new CommunityServiceException(e, Messages.CreateCommunityException);
            }
    }

communityPostUrl を一致するように変更する必要があります ...

ここでの Uuid は親 uuid です。

于 2013-10-21T16:06:46.060 に答える