Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在graph api中将facebook访问令牌用作字符串_Android_Facebook Android Sdk_Type Conversion_Facebook Access Token - Fatal编程技术网

Android 如何在graph api中将facebook访问令牌用作字符串

Android 如何在graph api中将facebook访问令牌用作字符串,android,facebook-android-sdk,type-conversion,facebook-access-token,Android,Facebook Android Sdk,Type Conversion,Facebook Access Token,实际上,我想在我的页面上发布一个页面,而不是在android应用程序中使用facebook sdk的用户,但问题是我从graph请求中检索到的页面“AccessToken”是字符串,现在我无法在其他graph请求中使用它。它表示字符串不能转换为AccessToken 这是我的密码 package com.mak.masimmak.pageshare; import android.support.v7.app.AppCompatActivity; impor

实际上,我想在我的页面上发布一个页面,而不是在android应用程序中使用facebook sdk的用户,但问题是我从graph请求中检索到的页面“AccessToken”是字符串,现在我无法在其他graph请求中使用它。它表示字符串不能转换为AccessToken

这是我的密码

  package com.mak.masimmak.pageshare;

        import android.support.v7.app.AppCompatActivity;
        import android.os.Bundle;
        import android.view.View;
        import android.widget.Button;
        import android.widget.Toast;

        import com.facebook.AccessToken;
        import com.facebook.GraphRequest;
        import com.facebook.GraphResponse;
        import com.facebook.HttpMethod;

        import org.json.JSONException;
        import org.json.JSONObject;


        public class sharePage extends AppCompatActivity {
         Button shareButton;
            public String PageId;
            String PageAccessToken;
            @Override
            protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_share_page);

                shareButton = (Button) findViewById(R.id.shareButton);



                shareButton.setOnClickListener(new View.OnClickListener(){

                    @Override
                    public void onClick(View view) {

                        if(getIntent().getExtras() != null) {
                            Bundle extras = getIntent().getExtras();
                            PageId = extras.getString("PageId");

                            /* make the API call */
                            new GraphRequest(
                                    AccessToken.getCurrentAccessToken(),
                                    "/"+PageId+"?fields=access_token",
                                    null,
                                    HttpMethod.GET,
                                    new GraphRequest.Callback() {
                                        public void onCompleted(GraphResponse response) {
                                             /* handle the result */


                                            try {
                                            JSONObject data = response.getJSONObject();
                                             PageAccessToken = data.getString("access_token");

                                                PostOnPage();



                                            } catch (JSONException e) {
                                                Toast.makeText(sharePage.this, e.toString(), Toast.LENGTH_LONG).show();
                                            }


                                        }
                                    }
                            ).executeAsync();




                        }
                    }

                });
            }

            public void PostOnPage(){

                Bundle params = new Bundle();
                params.putString("message", "This is a test message");
        /* make the API call */
                new GraphRequest(
  /* Problem is here the PageAccessToken is in String How to use this string token here? */
                        (AccessToken) PageAccessToken,
                        "/"+PageId+"/feed",
                        params,
                        HttpMethod.POST,
                        new GraphRequest.Callback() {
                            public void onCompleted(GraphResponse response) {
                    /* handle the result */
                            }
                        }
                ).executeAsync();

            }
        }
我在谷歌上搜索这个问题,发现了一些东西

public AccessToken(String accessToken, String applicationId, String userId, Collection permissions, Collection declinedPermissions, AccessTokenSource accessTokenSource, Date expirationTime, Date lastRefreshTime)

但我不知道如何在我的代码中使用或实现它。

我找到了自己问题的解决方案。 您可以使用这行代码将AccessToken从字符串格式转换为Facebook AccessToken格式

AccessToken PageAT = new AccessToken(PageAccessToken, AccessToken.getCurrentAccessToken().getApplicationId(), AccessToken.getCurrentAccessToken().getUserId(), AccessToken.getCurrentAccessToken().getPermissions(), null, AccessTokenSource.FACEBOOK_APPLICATION_NATIVE, AccessToken.getCurrentAccessToken().getExpires(), null);

那么这个页面在您的新图形请求中可以正常工作。

这对我不起作用。显示错误。无法解析构造函数。这是生成错误。请共享您正在使用的依赖关系