Android Facebook更改/设置新的AccessToken

时间:2016-02-27 15:41:45

标签: android facebook

我正在尝试允许用户以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
    };
});

就像我说的那样,我有选择工作,我可以看到访问令牌,如果我要记录它或按钮按下它。我只是不知道如何更改访问令牌。

有什么想法吗?

0 个答案:

没有答案