在一个Android应用程序创建的Facebook事件 [英] create facebook event in an android app

查看:202
本文介绍了在一个Android应用程序创建的Facebook事件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是新来的机器人,我只想为创建从应用程序,我会制定一个Facebook的事件。后来,我将增加邀请好友的功能。 我想显示的邀请,作为通知或以任何好办法。

我做了这么多的研究在互联网上,但无法找到解决办法。

我会真的AP preciate任何解决方案...

感谢您!

解决方案

 包com.tharaka.facebook;

进口java.io.FileNotFoundException;
进口java.io.IOException异常;
进口java.net.MalformedURLException;

进口org.json.JSONException;
进口org.json.JSONObject;

进口android.app.Activity;
进口android.content.Shared preferences;
进口android.os.Bundle;
进口android.util.Log;
进口android.view.Menu;
进口android.view.View;
进口android.view.View.OnClickListener;
进口android.widget.Button;
进口android.widget.Toast;

进口com.facebook.android.AsyncFacebookRunner;
进口com.facebook.android.AsyncFacebookRunner.RequestListener;
进口com.facebook.android.DialogError;
进口com.facebook.android.Facebook;
进口com.facebook.android.Facebook.DialogListener;
进口com.facebook.android.FacebookError;
进口com.tharaka.facebook.R;

公共类MainActivity扩展活动实现OnClickListener
{

    //你的Facebook应用程序ID
    私有静态字符串APP_ID =392736034134808; //替换您的应用程序ID
                                                      // 这里

    // Facebook的类的实例
    私人商标;
    私人AsyncFacebookRunner mAsyncRunner;
    字符串文件名=AndroidSSO_data;
    私人共享preferences米preFS;
    私人按钮btnFbLogin;
    私人按钮btnCreateEvent;
    私人字符串变量=MainActivity;

    @覆盖
    保护无效的onCreate(包savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.activity_main);
        初始化();
        setListeners();
    }

    私人无效初始化()
    {
        Facebook的=新的Facebook(APP_ID);
        mAsyncRunner =新AsyncFacebookRunner(脸谱);
        btnFbLogin =(按钮)findViewById(R.id.button_FbLogin);
        btnCreateEvent =(按钮)findViewById(R.id.button_createEvent);
    }

    私人无效setListeners()
    {
        btnFbLogin.setOnClickListener(本);
        btnCreateEvent.setOnClickListener(本);
    }

    @覆盖
    公共布尔onCreateOptionsMenu(菜单菜单)
    {
        //充气菜单;这增加了项目操作栏,如果它是present。
        。getMenuInflater()膨胀(R.menu.activity_main,菜单);
        返回true;
    }

    @覆盖
    公共无效的onClick(视图查看)
    {
        开关(view.getId())
        {
            案例R.id.button_FbLogin:
                loginToFacebook();
                打破;
            案例R.id.button_createEvent:
                CreateEvent的();
                Toast.makeText(getApplicationContext(),新事件创建!!,Toast.LENGTH_LONG).show();
                打破;
            默认:
                打破;
        }
    }

    私人无效loginToFacebook()
    {
        米preFS = GET preferences(MODE_PRIVATE);
        字符串access_token = M prefs.getString(access_token,NULL);
        长过期= M prefs.getLong(access_expires,0);

        若(access_token!= NULL)
        {
            facebook.setAccessToken(access_token);
        }

        如果(到期!= 0)
        {
            facebook.setAccessExpires(到期);
        }

        如果(!facebook.isSessionValid())
        {
            facebook.authorize(这一点,新的String [] {
                电子邮件,publish_stream,create_event
            },新DialogListener()
            {

                @覆盖
                公共无效OnCancel的()
                {
                    //函数处理取消事件
                }

                @覆盖
                公共无效的onComplete(束值)
                {
                    //函数来处理完成事件
                    //编辑preferences和更新Facebook的acess_token
                    共享preferences.Editor编辑= M prefs.edit();
                    editor.putString(access_token,facebook.getAccessToken());
                    editor.putLong(access_expires,facebook.getAccessExpires());
                    editor.commit();
                }

                @覆盖
                公共无效onerror的(DialogError错误)
                {
                    //函数来处理错误

                }

                @覆盖
                公共无效onFacebookError(FacebookError fberror)
                {
                    //函数来处理Facebook的错误

                }

            });
        }
    }

    私人无效CreateEvent的()
    {
        尝试
        {
            捆绑PARAMS =新包();
            params.putString(名,这是一个测试事件);
            params.putString(START_TIME,2013-12-02T18:00:00 + 0530);
            params.putString(END_TIME,2013-12-02T20:00:00 + 0530);
            params.putString(说明,这是测试描述耶?);
            params.putString(位置,拉维尼亚山);
            //params.putString("location_id,);
            params.putString(privacy_type,OPEN);
            mAsyncRunner.request(ME /事件,则params,POST,新RequestListener()
            {

                @覆盖
                公共无效onMalformedURLException(MalformedURLException的E,对象的状态)
                {

                }

                @覆盖
                公共无效onIOException(IOException异常E,对象状态)
                {

                }

                @覆盖
                公共无效onFileNotFoundException(FileNotFoundException异常即对象的状态)
                {

                }

                @覆盖
                公共无效onFacebookError(FacebookError即对象的状态)
                {

                }

                @覆盖
                公共无效的onComplete(字符串响应,对象状态)
                {
                    尝试
                    {
                        JSONObject的事件=新的JSONObject(响应);
                        字符串EVENT_ID = event.getString(ID);
                        Log.i(TAG,事件ID =>中+事项标识);

                       //Toast.makeText(getApplicationContext(),新事件创建!!,Toast.LENGTH_LONG).show();
                    }
                    赶上(例外五)
                    {

                    }
                }
            }, 空值);
        }
        赶上(例外五)
        {

        }
    }
}
 

I am new to android, I want only to create a Facebook event from the app that I am going to develop. Later I will be adding the feature to invite friends. I would like to display the invitation as a notification or in any good way.

I did so much research on internet but could not find the solution.

I will really appreciate any solutions...

Thank you!

解决方案

package com.tharaka.facebook;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.MalformedURLException;

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

import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

import com.facebook.android.AsyncFacebookRunner;
import com.facebook.android.AsyncFacebookRunner.RequestListener;
import com.facebook.android.DialogError;
import com.facebook.android.Facebook;
import com.facebook.android.Facebook.DialogListener;
import com.facebook.android.FacebookError;
import com.tharaka.facebook.R;

public class MainActivity extends Activity implements OnClickListener
{

    // Your Facebook APP ID
    private static String APP_ID = "392736034134808"; // Replace your App ID
                                                      // here

    // Instance of Facebook Class
    private Facebook facebook;
    private AsyncFacebookRunner mAsyncRunner;
    String FILENAME = "AndroidSSO_data";
    private SharedPreferences mPrefs;
    private Button btnFbLogin;
    private Button btnCreateEvent;
    private String TAG="MainActivity";

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initialize();
        setListeners();
    }

    private void initialize()
    {
        facebook = new Facebook(APP_ID);
        mAsyncRunner = new AsyncFacebookRunner(facebook);
        btnFbLogin = (Button) findViewById(R.id.button_FbLogin);
        btnCreateEvent = (Button) findViewById(R.id.button_createEvent);
    }

    private void setListeners()
    {
        btnFbLogin.setOnClickListener(this);
        btnCreateEvent.setOnClickListener(this);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu)
    {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }

    @Override
    public void onClick(View view)
    {
        switch (view.getId())
        {
            case R.id.button_FbLogin:
                loginToFacebook();
                break;            
            case R.id.button_createEvent:
                createEvent();
                Toast.makeText(getApplicationContext(), "New Event Created!!", Toast.LENGTH_LONG).show();
                break;
            default:
                break;
        }
    }

    private void loginToFacebook()
    {
        mPrefs = getPreferences(MODE_PRIVATE);
        String access_token = mPrefs.getString("access_token", null);
        long expires = mPrefs.getLong("access_expires", 0);

        if (access_token != null)
        {
            facebook.setAccessToken(access_token);
        }

        if (expires != 0)
        {
            facebook.setAccessExpires(expires);
        }

        if (!facebook.isSessionValid())
        {
            facebook.authorize(this, new String[] {
                "email", "publish_stream", "create_event"
            }, new DialogListener()
            {

                @Override
                public void onCancel()
                {
                    // Function to handle cancel event
                }

                @Override
                public void onComplete(Bundle values)
                {
                    // Function to handle complete event
                    // Edit Preferences and update facebook acess_token
                    SharedPreferences.Editor editor = mPrefs.edit();
                    editor.putString("access_token", facebook.getAccessToken());
                    editor.putLong("access_expires", facebook.getAccessExpires());
                    editor.commit();
                }

                @Override
                public void onError(DialogError error)
                {
                    // Function to handle error

                }

                @Override
                public void onFacebookError(FacebookError fberror)
                {
                    // Function to handle Facebook errors

                }

            });
        }
    }

    private void createEvent()
    {
        try
        {
            Bundle params = new Bundle();
            params.putString("name", "This is a test event");
            params.putString("start_time", "2013-12-02T18:00:00+0530");
            params.putString("end_time", "2013-12-02T20:00:00+0530");
            params.putString("description", "This is test description yeah?.");
            params.putString("location", "Mount Lavinia");
            //params.putString("location_id", "");
            params.putString("privacy_type", "OPEN");
            mAsyncRunner.request("me/events", params, "POST", new RequestListener()
            {

                @Override
                public void onMalformedURLException(MalformedURLException e, Object state)
                {

                }

                @Override
                public void onIOException(IOException e, Object state)
                {

                }

                @Override
                public void onFileNotFoundException(FileNotFoundException e, Object state)
                {

                }

                @Override
                public void onFacebookError(FacebookError e, Object state)
                {

                }

                @Override
                public void onComplete(String response, Object state)
                {
                    try
                    {
                        JSONObject event = new JSONObject(response);
                        String event_id = event.getString("id");
                        Log.i(TAG, "Event id => "+event_id);

                       //Toast.makeText(getApplicationContext(), "New Event Created!!", Toast.LENGTH_LONG).show();
                    }
                    catch (Exception e)
                    {

                    }
                }
            }, null);
        }
        catch (Exception e)
        {

        }
    }
}

这篇关于在一个Android应用程序创建的Facebook事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆