1

LinkedIn Wallにコンテンツを投稿するコードを記述しましたが、更新辞書からコンテンツ辞書を削除すると正常に機能します。投稿データを含む以下のコードを参照してください。

- (IBAction)postUpdate
    {
     NSURL *url = [NSURL URLWithString:@"http://api.linkedin.com/v1/people/~/shares"];
     OAMutableURLRequest *request =
     [[OAMutableURLRequest alloc] initWithURL:url
                                     consumer:oAuthLoginView.consumer
                                        token:oAuthLoginView.accessToken
                                     callback:nil
                            signatureProvider:nil];

     NSDictionary *content=[[NSDictionary alloc] initWithObjectsAndKeys:@"http://www.celebs101.com/wallpapers/Bruce_Lee/421101/Bruce_Lee_Wallpaper.jpg",@"submitted-image-url",@"http://www.youtube.com/watch?v=GoZ2Be2zLq8",@"submitted-url",@"Post Image and Video testing",@"title",@"Posted Description",@"description",nil];

     NSDictionary *update = [[NSDictionary alloc] initWithObjectsAndKeys:
                             [[NSDictionary alloc]
                              initWithObjectsAndKeys:
                              @"anyone",@"code",nil], @"visibility",
                             @"Test posting to linkedIn", @"comment",content,@"content",nil];


     [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
     NSString *updateString = [update JSONString];

     [request setHTTPBodyWithString:updateString];
     [request setHTTPMethod:@"POST"];

     OADataFetcher *fetcher = [[OADataFetcher alloc] init];
     [fetcher fetchDataWithRequest:request
                          delegate:self
                 didFinishSelector:@selector(postUpdateApiCallResult:didFinish:)
                   didFailSelector:@selector(postUpdateApiCallResult:didFail:)];
    }

投稿データはdidfinishSelectorに含まれます:

投稿後のデータは次のとおりです。

 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <error>
      <status>401</status>
      <timestamp>1356601471318</timestamp>
      <request-id>MFW58DCKE9</request-id>
      <error-code>0</error-code>
      <message>[unauthorized]. OAU:0onill9cburx|3c05c306-aad8-4d07-a2a1-2430aa21b54a|*01|*01:1356601465:Ji7pimMqrXp3RHCNJLv8iKZsklk=</message>
    </error>

なぜそうなのか分かりませんか?助けてください..事前に感謝します..

4

2 に答える 2

0

私はそれを解決しました

次のようにLinkedInに投稿するための作業コード:

- (IBAction)postUpdate
{
 NSURL *url = [NSURL URLWithString:@"http://api.linkedin.com/v1/people/~/shares"];
 OAMutableURLRequest *request =
 [[OAMutableURLRequest alloc] initWithURL:url
                                 consumer:oAuthLoginView.consumer
                                    token:oAuthLoginView.accessToken
                                 callback:nil
                        signatureProvider:nil];

 NSMutableDictionary *contentDic=[[NSMutableDictionary alloc] init];

 [contentDic setValue:@"http://www.celebs101.com/wallpapers/Bruce_Lee/421101/Bruce_Lee_Wallpaper.jpg" forKey:@"submitted-image-url"];
 [contentDic setValue:@"http://www.linkedin.com" forKey:@"submitted-url"];
 [contentDic setValue:[NSString stringWithFormat:@"A title for your share"] forKey:@"title"];


 NSDictionary *update = [[NSDictionary alloc] initWithObjectsAndKeys:
                         [[NSDictionary alloc]
                          initWithObjectsAndKeys:
                          @"anyone",@"code",nil], @"visibility",
                         @"Test posting to linkedIn",@"comment",contentDic,@"content",nil];

 [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];

 NSString *updateString = [update JSONString];


 NSLog(@"json string is %@",updateString);

 [request setHTTPBodyWithString:updateString];
 [request setHTTPMethod:@"POST"];

 OADataFetcher *fetcher = [[OADataFetcher alloc] init];

 [fetcher fetchDataWithRequest:request
                      delegate:self
             didFinishSelector:@selector(postUpdateApiCallResult:didFinish:)
               didFailSelector:@selector(postUpdateApiCallResult:didFail:)];
}


- (void)postUpdateApiCallResult:(OAServiceTicket *)ticket didFinish:(NSData *)data
{
 NSString *myString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
 NSLog(@"data after posting is %@",myString);
}


- (void)postUpdateApiCallResult:(OAServiceTicket *)ticket didFail:(NSData *)error
{
 NSLog(@"%@",[error description]);
}
于 2012-12-27T11:00:41.017 に答える
0

このタイプのエラーが発生した場合:

ここに画像の説明を入力してください

したがって、「submitted-url」キーの投稿URLが原因である可能性があります。したがって、これを行う簡単な方法は、最初にこのリンク( http://tinyurl.com/api-create.php?url=post_url)を使用して「submitted-url」のpost_urlを短くすることです。次に、この短いpost_urlを「submitted-url」値に使用します。これはあなたの問題の解決策になる可能性があります。

「submitted-url」キーの長いURLは、そのような問題を引き起こすことがあります。

于 2013-04-25T08:39:50.667 に答える