LinkedIn Objective C共享

时间:2016-02-04 20:07:59

标签: objective-c linkedin sharing

我们正在与linkIn目标C SDK共享,最新版本。

使用此代码:

public class SearchBookActivity extends Activity {

LibraryDataSource mDataSource;
private EditText mEditText;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    mEditText = (EditText) findViewById(R.id.title_type);
    mDataSource = new LibraryDataSource(SearchBookActivity.this);
    handleIntent(getIntent());
}

@Override
protected void onNewIntent(Intent intent) {

    setIntent(intent);
    handleIntent(intent);
}

private void handleIntent(Intent intent) {

    if (Intent.ACTION_SEARCH.equals(intent.getAction())) {
        String query = intent.getStringExtra(SearchManager.QUERY);
        //use the query to search your data somehow

        Log.i("Search bar", query);
        mDataSource.open();
        mEditText.setText(mDataSource.searchKeyString(query));

    }
}
}

从他们的示例页面中提升了很多。 (不得不稍微更新一下,网站上的URL是用不再存在的initWithString声明的。)

我们已请求并收到有效会话,并根据更新的规范要求获得w_share权限。

以下是实际错误:

 NSString *url = @"https://api.linkedin.com/v1/people/~/shares";

    NSString *payload = @"{\"visibility\":[{\"code\":\"anyone\"}],\"comment\":\"Check out developer.linkedin.com! http://linkd.in/1FC2PyG\"}";

    if ([LISDKSessionManager hasValidSession]) {
        [[LISDKAPIHelper sharedInstance] postRequest:url stringBody:payload success:^(LISDKAPIResponse *response) {
            // do something with response
            NSLog(@"Success: %@", response.description);
            dispatch_async(dispatch_get_main_queue(), ^{
                _responseLabel.text = response.description;
            });
        } error:^(LISDKAPIError *apiError) {
            // do something with error
            NSLog(@"Error: %@", apiError.description);
             dispatch_async(dispatch_get_main_queue(), ^{
                 _responseLabel.text = apiError.description;
             });
        }];
    }

任何提示都将不胜感激!

1 个答案:

答案 0 :(得分:1)

根据Linked-in的文档和API控制台,XML是默认的,您需要指定您想要JSON,如下所示:

   https://api.linkedin.com/v1/people/~/shares?format=json

可能有一个标题(不确定LISDKAPIHelper是否知道如何做这部分。)

文档真的不清楚。我建议你用像CharlesProxy这样的东西捕获数据包,看看是什么发送的是你期望的。或者,使用相同的代码,但发送XML而不是JSON。