我正在尝试允许用户以Facebook身份登录页面 - 所以如果有更简单的方式来完成我正在尝试的内容,请随时告诉我 -
目前,我使用LoginManager登录用户并使用GraphRequest获取用户的详细信息(即他们的页面和页面access_token)。然后我将用户的页面放入微调器中,以便用户可以选择要发布的页面(包括他们自己的页面)。
这是问题所在。当用户登录时,我将access_token
作为字符串,我提取信息,当用户选择他们想要的页面时,我看到access_token
,但我完全不确定如何设置一个新的访问令牌,尤指来自字符串。
这是我正在使用的代码:
GraphRequest requestPage = GraphRequest.newGraphPathRequest(
currentAccessToken,
"/me/accounts",
new GraphRequest.Callback() {
@Override
public void onCompleted(GraphResponse response) {
JSONArray jsonArray = null;
try {
jsonArray = response.getJSONObject().getJSONArray("data");
for(int i=0; i < jsonArray.length(); i++){
JSONObject page = jsonArray.getJSONObject(i);
String pageName = page.getString("name");
String pageToken = page.getString("access_token");
if(!pageName.equals("")) {
//I know there's a better way of getting the name and token together in an array, but I don't know how
pages_array.add(pageName);
pages_token_array.add(pageToken);
facebook_pages.setVisibility(View.VISIBLE);
} else {
pages_array.clear();
pages_token_array.clear();
}
}
} catch (JSONException e) {
e.printStackTrace();
}
final ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(StartPage.this, android.R.layout.simple_spinner_item, pages_array);
spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); // The drop down view
spinnerArrayAdapter.notifyDataSetChanged();
page_spinner.setAdapter(spinnerArrayAdapter);
}
});
Bundle pageParameters = new Bundle();
pageParameters.putString("fields", "name,access_token,picture{url}");
requestPage.setParameters(pageParameters);
requestPage.executeAsync();
);
然后我就是如何选择微调器
facebook_select_button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
String spinner_value = page_spinner.getSelectedItem().toString();
int spinner_position = page_spinner.getSelectedItemPosition();
String newAccessToken = pages_token_array.get(spinner_position);
//AccessToken token = new AccessToken(newAccessToken);
//TODO: SET NEW ACCESS TOKEN
};
});
就像我说的那样,我有选择工作,我可以看到访问令牌,如果我要记录它或按钮按下它。我只是不知道如何更改访问令牌。
有什么想法吗?