• zhaoxin
  • NEWBIE
  • 0 Points
  • Member since 2013

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 0
    Questions
  • 2
    Replies

FeedItemへのファイル登録は、FeedItem.ContentData、FeedItem.ContentFileNameによりフィードデータおよびファイルデータが登録できますが、FeedCommentは同じくできません。

コメント欄へファイルデータの及び、実ファイルのファイルデータの登録をApexでどのように記述すれば良いのでしょうか?

お手数ですがご教授ください。

  • February 20, 2013
  • Like
  • 0

お世話になっております。

 

mobile SDKを使用したネイティブアプリケーションから、force.comのメモ&添付の画像データを取得しようとしています。

しかし、データの取得がうまくできずエラーになってしまいます。

以下、こちらで試した内容です。エラーが回避できる方法があれば、ご教示いただきたく思います。

 

1.AttachmentオブジェクトのBodyフィールドを取得(Bodyフィールドに画像データがBase64エンコードされた状態で取得できる予定)

・リクエスト時のコード
    [[SFRestAPI sharedInstance] setApiVersion:@"v24.0"];
    SFRestRequest *request = [[SFRestAPI sharedInstance] requestForRetrieveWithObjectType:@"Attachment" objectId:@"00P10000008NaeJEAS" fieldList:@"Body"];
    [[SFRestAPI sharedInstance] send:request delegate:self];

 

・リクエスト時のログ
SFRestAPI::send: <SFRestRequest 0x73c700
endpoint: /services/data
method: GET
path: /v24.0/sobjects/Attachment/00P10000008NaeJEAS
queryParams: {
  "fields" : "Body"
}

 

・レスポンス取得時のログ
request:didLoadResponse: {
    Body = "/services/data/v24.0/sobjects/Attachment/00P10000008NaeJEAS/Body";
    Id = 00P10000008NaeJEAS;
    attributes =     {
        type = Attachment;
        url = "/services/data/v24.0/sobjects/Attachment/00P10000008NaeJEAS";
    };
}

Bodyにbase64エンコードされたデータを取得できるのを期待していたのですが、
"/services/data/v24.0/sobjects/Attachment/00P10000008NaeJEAS/Body"
というパスを取得しているようです。


2.上記で取得できたパスを指定してリクエスト

・リクエスト時のコード
    [[SFRestAPI sharedInstance] setApiVersion:@"v24.0"];
    SFRestRequest *request = [[SFRestRequest alloc] init];
    [request setEndpoint:@"/services/data"];
    [request setPath: @"/v24.0/sobjects/Attachment/00P10000008NaeJEAS/Body"];
    [[SFRestAPI sharedInstance] send:request delegate:self];

 

・リクエスト時のログ
SFRestAPI::send: <SFRestRequest 0x6e4090
endpoint: /services/data
method: GET
path: /v24.0/sobjects/Attachment/00P10000008NaeJEAS/Body
queryParams: []


・レスポンス時のログ
error parsing json: Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 3840.)" (JSON text did not start with array or object and option to allow fragments not set.) UserInfo=0x6bbf80 {NSDebugDescription=JSON text did not start with array or object and option to allow fragments not set.}

というエラーになってしまいます。
おそらく、このリクエストでバイナリデータを受信できていると思われますが、
Mobile SDKのSFRestAPIDelegateのrequest:didLoadResponse:で取得できる値はnullとなってしまい、バイナリデータを取得することができていません。

  • February 18, 2013
  • Like
  • 0