我们正在与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;
});
}];
}
任何提示都将不胜感激!
答案 0 :(得分:1)
根据Linked-in的文档和API控制台,XML是默认的,您需要指定您想要JSON,如下所示:
https://api.linkedin.com/v1/people/~/shares?format=json
可能有一个标题(不确定LISDKAPIHelper是否知道如何做这部分。)
文档真的不清楚。我建议你用像CharlesProxy这样的东西捕获数据包,看看是什么发送的是你期望的。或者,使用相同的代码,但发送XML而不是JSON。