Java Deezer SDK for Android,如何向Deezer请求授予访问令牌?

Java Deezer SDK for Android,如何向Deezer请求授予访问令牌?,java,android,deezer,Java,Android,Deezer,我正在使用JavaAndroidSDK开发Deezer应用程序。 我已经设法用Deezer方法登录(出现一个弹出窗口,允许用户使用他的Deezer或facebook帐户登录) 但现在我想访问用户数据(名称/id…),以备将来使用。我目前正在使用 DeezerRequest request_name = new DeezerRequest("/user/me"); 但是应用程序抛出一个异常,请求访问令牌。我有它,但我不知道如何将它提供给请求(deezer开发站点并没有真正的帮助,因为他假设您知道

我正在使用JavaAndroidSDK开发Deezer应用程序。 我已经设法用Deezer方法登录(出现一个弹出窗口,允许用户使用他的Deezer或facebook帐户登录)

但现在我想访问用户数据(名称/id…),以备将来使用。我目前正在使用

DeezerRequest request_name = new DeezerRequest("/user/me");
但是应用程序抛出一个异常,请求访问令牌。我有它,但我不知道如何将它提供给请求(deezer开发站点并没有真正的帮助,因为他假设您知道如何处理它)

如果有帮助的话,我可以发布更多的代码。
感谢您的帮助。

正确登录后,这是我使用的代码(取自sdk zip文件中的Deezer示例应用程序)

在您的活动中:

private RequestListener userRequestListenerHandler = new UserRequestHandler();

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

....

searchUser();
}

public void searchUser(){

    AsyncDeezerTask searchAsyncUser = new AsyncDeezerTaskWithDialog(this,  deezerConnect, userRequestListenerHandler);
        DeezerRequest request = new DeezerRequest("user/me");
        searchAsyncUser.execute(request);

}

public void searchUserFinish(User user) {
        // TODO Auto-generated method stub
        String name = user.getFirstname();
        Sring lastname = user.getLastname();
        //... other user data
        }


private class UserRequestHandler implements RequestListener{

        @Override
        public void onComplete(String response, Object arg1) {
            // TODO Auto-generated method stub

            try{


                User user = new DeezerDataReader<User>(User.class).read(response);

                searchUserFinish(user);

            }catch (IllegalStateException e){
                handleError(e);
                e.printStackTrace();
            }

        }

        @Override
        public void onDeezerError(DeezerError e, Object arg1) {
            // TODO Auto-generated method stub
            handleError(e);
        }

        @Override
        public void onIOException(IOException e, Object arg1) {
            // TODO Auto-generated method stub
            handleError(e);
        }

        @Override
        public void onMalformedURLException(MalformedURLException e,
                Object arg1) {
            // TODO Auto-generated method stub
            handleError(e);

        }

        @Override
        public void onOAuthException(OAuthException e, Object arg1) {
            // TODO Auto-generated method stub
            handleError(e);
        }

    }

public void handleError(Error e){
Toast.maketext(this,e,Toast.Length_Short).show();
}
DEEZER数据读取器类

public class DeezerDataReader<T extends Object> {

    /** Class to pass to the Gson parser to create POJOs. */
    private Class<T> clazz = null;

    /** Creates a reader. 
     * @param clazz class to pass to the Gson parser to create POJOs. 
     * */
    public DeezerDataReader( Class<T> clazz ) {
        if( clazz == null ){
            throw new IllegalArgumentException( "Clazz can't be null." );
        }//if
        this.clazz = clazz;
    }//cons

    /**
     * DAO method to read (deserialize) data from a json string.
     * @param json the json string to deserialize.
     * @return a list of typed data from Deezer. The list can't be null, but may be empty.
     * @throws IllegalStateException if the parser encounters an error in json format.
     */
    public T read( String json ) throws IllegalStateException {
        Gson gson = new Gson(); 
        JsonObject object = new JsonParser().parse(json).getAsJsonObject();
        return gson.fromJson( object, clazz );
    }//met

}//met
公共类DeezerDataReader{
/**类传递给Gson解析器以创建POJO*/
私有类clazz=null;
/**创建一个阅读器。
*@param clazz类传递给Gson解析器以创建POJO。
* */
公共DeezerDataReader(类clazz){
if(clazz==null){
抛出新的IllegalArgumentException(“Clazz不能为null”);
}//如果
this.clazz=clazz;
}//缺点
/**
*DAO方法从json字符串读取(反序列化)数据。
*@param json要反序列化的json字符串。
*@从Deezer返回类型化数据列表。列表不能为空,但可以为空。
*如果解析器遇到json格式的错误,@将抛出IllegalStateException。
*/
公共T读取(字符串json)引发IllegalStateException{
Gson Gson=新的Gson();
JsonObject object=new JsonParser().parse(json.getAsJsonObject();
返回gson.fromJson(对象,clazz);
}//遇见
}//遇见

太好了,有人帮我将访问令牌链接到deezerConnect:

/** DeezerConnect object used for auhtentification or request. */
private DeezerConnect deezerConnect = new DeezerConnectImpl(APP_ID);
//----
deezerConnect.setAccessToken(getApplicationContext(), access_token);
访问令牌是通过以下方式获得的:

deezerConnect.authorize(MainActivity.this, PERMISSIONS,
            new LoginDialogHandler());

//----
private class LoginDialogHandler implements DialogListener {
    @Override
    public void onComplete(final Bundle values) {

        MainActivity.access_token = values.getString("access_token");
    }
//----
}

不,还是相同的问题:/06-12 10:33:13.710:W/userRequesthandler/onOAuthException(4558):com.deezer.sdk.OAuthException:msg=必须使用活动访问令牌来查询有关当前用户的信息,type=,code=0我想我必须向deezerConnect添加一些内容(通过捆绑包或其他方式)但是我不知道在没有用户交互的情况下,我们可以自动登录到deezer的什么以及如何登录?
deezerConnect.authorize(MainActivity.this, PERMISSIONS,
            new LoginDialogHandler());

//----
private class LoginDialogHandler implements DialogListener {
    @Override
    public void onComplete(final Bundle values) {

        MainActivity.access_token = values.getString("access_token");
    }
//----
}