এই নির্দেশিকায় গুগল চ্যাট এপিআই ব্যবহার করে কীভাবে একজন ব্যবহারকারীর উপলব্ধতার অবস্থা এবং নিজস্ব অবস্থা পরিচালনা করতে হয়, তা ব্যাখ্যা করা হয়েছে।
কোনো চ্যাট ব্যবহারকারীর প্রাপ্যতা পড়তে ও আপডেট করতে, আপনার অ্যাপকে অবশ্যই ব্যবহারকারী প্রমাণীকরণের মাধ্যমে নিজেকে প্রমাণীকৃত করতে হবে। শুধুমাত্র প্রমাণীকৃত ব্যবহারকারীর প্রাপ্যতাই দেখা বা পরিবর্তন করা যাবে।
পূর্বশর্ত
নোড.জেএস
- গুগল চ্যাট ব্যবহারের সুবিধাসহ একটি ব্যবসায়িক বা এন্টারপ্রাইজ গুগল ওয়ার্কস্পেস অ্যাকাউন্ট।
- আপনার পরিবেশ প্রস্তুত করুন:
- একটি গুগল ক্লাউড প্রজেক্ট তৈরি করুন ।
- OAuth সম্মতি স্ক্রিনটি কনফিগার করুন ।
- আপনার চ্যাট অ্যাপের জন্য একটি নাম, আইকন এবং বিবরণ দিয়ে গুগল চ্যাট এপিআই সক্রিয় ও কনফিগার করুন ।
- Node.js ক্লাউড ক্লায়েন্ট লাইব্রেরি ইনস্টল করুন।
- একটি ডেস্কটপ অ্যাপ্লিকেশনের জন্য OAuth ক্লায়েন্ট আইডি ক্রেডেনশিয়াল তৈরি করুন । এই গাইডের নমুনাটি চালানোর জন্য, ক্রেডেনশিয়ালগুলো আপনার স্থানীয় ডিরেক্টরিতে
credentials.jsonনামের একটি JSON ফাইল হিসেবে সংরক্ষণ করুন।
- এমন একটি অনুমোদন পরিধি বেছে নিন যা ব্যবহারকারী প্রমাণীকরণ সমর্থন করে।
পাইথন
- গুগল চ্যাট ব্যবহারের সুবিধাসহ একটি ব্যবসায়িক বা এন্টারপ্রাইজ গুগল ওয়ার্কস্পেস অ্যাকাউন্ট।
- আপনার পরিবেশ প্রস্তুত করুন:
- একটি গুগল ক্লাউড প্রজেক্ট তৈরি করুন ।
- OAuth সম্মতি স্ক্রিনটি কনফিগার করুন ।
- আপনার চ্যাট অ্যাপের জন্য একটি নাম, আইকন এবং বিবরণ দিয়ে গুগল চ্যাট এপিআই সক্রিয় ও কনফিগার করুন ।
- পাইথন ক্লাউড ক্লায়েন্ট লাইব্রেরি ইনস্টল করুন।
- একটি ডেস্কটপ অ্যাপ্লিকেশনের জন্য OAuth ক্লায়েন্ট আইডি ক্রেডেনশিয়াল তৈরি করুন । এই গাইডের নমুনাটি চালানোর জন্য, ক্রেডেনশিয়ালগুলো আপনার স্থানীয় ডিরেক্টরিতে
credentials.jsonনামের একটি JSON ফাইল হিসেবে সংরক্ষণ করুন।
- এমন একটি অনুমোদন পরিধি বেছে নিন যা ব্যবহারকারী প্রমাণীকরণ সমর্থন করে।
জাভা
- গুগল চ্যাট ব্যবহারের সুবিধাসহ একটি ব্যবসায়িক বা এন্টারপ্রাইজ গুগল ওয়ার্কস্পেস অ্যাকাউন্ট।
- আপনার পরিবেশ প্রস্তুত করুন:
- একটি গুগল ক্লাউড প্রজেক্ট তৈরি করুন ।
- OAuth সম্মতি স্ক্রিনটি কনফিগার করুন ।
- আপনার চ্যাট অ্যাপের জন্য একটি নাম, আইকন এবং বিবরণ দিয়ে গুগল চ্যাট এপিআই সক্রিয় ও কনফিগার করুন ।
- জাভা ক্লাউড ক্লায়েন্ট লাইব্রেরি ইনস্টল করুন।
- একটি ডেস্কটপ অ্যাপ্লিকেশনের জন্য OAuth ক্লায়েন্ট আইডি ক্রেডেনশিয়াল তৈরি করুন । এই গাইডের নমুনাটি চালানোর জন্য, ক্রেডেনশিয়ালগুলো আপনার স্থানীয় ডিরেক্টরিতে
credentials.jsonনামের একটি JSON ফাইল হিসেবে সংরক্ষণ করুন।
- এমন একটি অনুমোদন পরিধি বেছে নিন যা ব্যবহারকারী প্রমাণীকরণ সমর্থন করে।
অ্যাপস স্ক্রিপ্ট
- গুগল চ্যাট ব্যবহারের সুবিধাসহ একটি ব্যবসায়িক বা এন্টারপ্রাইজ গুগল ওয়ার্কস্পেস অ্যাকাউন্ট।
- আপনার পরিবেশ প্রস্তুত করুন:
- একটি গুগল ক্লাউড প্রজেক্ট তৈরি করুন ।
- OAuth সম্মতি স্ক্রিনটি কনফিগার করুন ।
- আপনার চ্যাট অ্যাপের জন্য একটি নাম, আইকন এবং বিবরণ দিয়ে গুগল চ্যাট এপিআই সক্রিয় ও কনফিগার করুন ।
- একটি স্বতন্ত্র অ্যাপস স্ক্রিপ্ট প্রজেক্ট তৈরি করুন এবং অ্যাডভান্সড চ্যাট সার্ভিসটি চালু করুন।
- এমন একটি অনুমোদন পরিধি বেছে নিন যা ব্যবহারকারী প্রমাণীকরণ সমর্থন করে।
একজন ব্যবহারকারীর উপলব্ধতা জানুন
কোনো গুগল চ্যাট ব্যবহারকারীর প্রাপ্যতা জানতে, আপনার অনুরোধে নিম্নলিখিত তথ্যগুলো দিন:
-
chat.users.availability.readonlyঅথবাchat.users.availabilityঅথরাইজেশন স্কোপ নির্দিষ্ট করুন। -
GetAvailabilityমেথডটি কল করুন। - যে অ্যাভেইলেবিলিটি রিসোর্সটি পুনরুদ্ধার করতে চান, তার
nameদিন। নামটি অবশ্যইusers/{user}/availabilityফরম্যাটে হতে হবে। কলারকে উল্লেখ করার জন্য ব্যবহারকারীর ইমেল ঠিকানা বাmeঅ্যালিয়াস ব্যবহার করা যেতে পারে। উদাহরণস্বরূপ,users/me/availability।
একজন ব্যবহারকারীর উপলব্ধতা জানার উপায় নিচে দেওয়া হলো:
নোড.জেএস
const { ChatServiceClient } = require('@google-apps/chat').v1;
// Instantiates a client
const chatServiceClient = new ChatServiceClient();
async function getAvailability() {
const request = {
// The name of the availability resource to retrieve.
// Format: users/{user}/availability
// The 'me' alias can be used to refer to the calling user.
name: 'users/me/availability',
};
try {
const response = await chatServiceClient.getAvailability(request);
console.log(response);
} catch (err) {
console.error('Error retrieving availability:', err);
}
}
getAvailability();
পাইথন
from google.apps import chat_v1 as google_chat
def get_availability():
# Instantiates a client
client = google_chat.ChatServiceClient()
# Prepare request
request = google_chat.GetAvailabilityRequest(
# Format: users/{user}/availability
# The 'me' alias refers to the calling user.
name="users/me/availability",
)
# Call the API
try:
response = client.get_availability(request=request)
print(response)
except Exception as e:
print(f"Error retrieving availability: {e}")
get_availability()
জাভা
import com.google.chat.v1.Availability;
import com.google.chat.v1.ChatServiceClient;
import com.google.chat.v1.GetAvailabilityRequest;
public class GetAvailability {
public static void main(String[] args) throws Exception {
// Instantiates a client
try (ChatServiceClient chatServiceClient = ChatServiceClient.create()) {
GetAvailabilityRequest request = GetAvailabilityRequest.newBuilder()
// Format: users/{user}/availability
// The 'me' alias refers to the calling user.
.setName("users/me/availability")
.build();
Availability response = chatServiceClient.getAvailability(request);
System.out.println(response);
}
}
}
অ্যাপস স্ক্রিপ্ট
/**
* Retrieves the calling user's availability details.
*/
function getUserAvailability() {
const name = 'users/me/availability';
try {
const availability = Chat.Users.Availability.get(name);
console.log(availability);
} catch (err) {
console.error('Failed to get availability: ' + err.message);
}
}
চ্যাট এপিআই ব্যবহারকারীর উপস্থিতি অবস্থা এবং কাস্টম স্ট্যাটাসের বিবরণসহ Availability -এর একটি ইনস্ট্যান্স রিটার্ন করে।
কাস্টম স্ট্যাটাস আপডেট করুন
কোনো ব্যবহারকারীর কাস্টম স্ট্যাটাস আপডেট করতে, আপনার অনুরোধে নিম্নলিখিত তথ্যগুলো দিন:
-
chat.users.availabilityএর অনুমোদন পরিধি নির্দিষ্ট করুন। -
UpdateAvailabilityমেথডটি কল করুন। - নতুন
customStatusবিবরণ উল্লেখ করেAvailabilityরিসোর্সটি পাস করুন। -
custom_statusফিল্ডটি অন্তর্ভুক্ত করতেupdate_maskপ্যারামিটারটি সেট করুন।
ব্যবহারকারীর কাস্টম স্ট্যাটাস আপডেট করার পদ্ধতি নিচে দেওয়া হলো:
নোড.জেএস
const { ChatServiceClient } = require('@google-apps/chat').v1;
// Instantiates a client
const chatServiceClient = new ChatServiceClient();
async function updateCustomStatus() {
const request = {
// The Availability resource to update.
availability: {
name: 'users/me/availability',
customStatus: {
text: 'In a meeting',
emoji: {
unicode: '📅'
}
}
},
// The fields to update. Must contain 'custom_status'.
updateMask: {
paths: ['custom_status']
}
};
try {
const response = await chatServiceClient.updateAvailability(request);
console.log(response);
} catch (err) {
console.error('Error updating status:', err);
}
}
updateCustomStatus();
পাইথন
from google.apps import chat_v1 as google_chat
from google.protobuf import field_mask_pb2
def update_custom_status():
# Instantiates a client
client = google_chat.ChatServiceClient()
# Define custom status and emoji
custom_status = google_chat.CustomStatus(
text="In a meeting",
emoji=google_chat.Emoji(unicode="📅")
)
# Initialize availability object
availability = google_chat.Availability(
name="users/me/availability",
custom_status=custom_status
)
# Specify update mask
update_mask = field_mask_pb2.FieldMask(paths=["custom_status"])
# Prepare request
request = google_chat.UpdateAvailabilityRequest(
availability=availability,
update_mask=update_mask
)
# Call the API
try:
response = client.update_availability(request=request)
print(response)
except Exception as e:
print(f"Error updating status: {e}")
update_custom_status()
জাভা
import com.google.chat.v1.Availability;
import com.google.chat.v1.ChatServiceClient;
import com.google.chat.v1.CustomStatus;
import com.google.chat.v1.Emoji;
import com.google.chat.v1.UpdateAvailabilityRequest;
import com.google.protobuf.FieldMask;
public class UpdateCustomStatus {
public static void main(String[] args) throws Exception {
// Instantiates a client
try (ChatServiceClient chatServiceClient = ChatServiceClient.create()) {
CustomStatus customStatus = CustomStatus.newBuilder()
.setText("In a meeting")
.setEmoji(Emoji.newBuilder().setUnicode("📅"))
.build();
Availability availability = Availability.newBuilder()
.setName("users/me/availability")
.setCustomStatus(customStatus)
.build();
FieldMask updateMask = FieldMask.newBuilder()
.addPaths("custom_status")
.build();
UpdateAvailabilityRequest request = UpdateAvailabilityRequest.newBuilder()
.setAvailability(availability)
.setUpdateMask(updateMask)
.build();
Availability response = chatServiceClient.updateAvailability(request);
System.out.println(response);
}
}
}
অ্যাপস স্ক্রিপ্ট
/**
* Updates the calling user's custom status message.
*/
function updateCustomStatus() {
const name = 'users/me/availability';
const availability = {
customStatus: {
text: 'In a meeting',
emoji: {
unicode: '📅'
}
}
};
const updateMask = 'custom_status';
try {
const response = Chat.Users.Availability.patch(availability, name, {
updateMask: updateMask
});
console.log(response);
} catch (err) {
console.error('Failed to update status: ' + err.message);
}
}
চ্যাট এপিআই নতুন কাস্টম স্ট্যাটাস সহ Availability এর একটি ইনস্ট্যান্স আপডেট করে এবং ফেরত দেয়।
কোনো ব্যবহারকারীর কাস্টম স্ট্যাটাস মুছে ফেলতে, প্রাপ্যতা আপডেট করুন এবং customStatus বিবরণ বাদ দিন।
উপস্থিতির অবস্থা আপডেট করুন
নির্ধারিত উপস্থিতি অবস্থার উপর নির্ভর করে, আপনি নিম্নলিখিত কাস্টম মেথডগুলোর যেকোনো একটি কল করে একজন ব্যবহারকারীর প্রাপ্যতা আপডেট করতে পারেন:
- সক্রিয় : উপস্থিতি সক্রিয় করতে
MarkAsActiveমেথডটি কল করুন। ঐচ্ছিক মেয়াদ শেষের মান (ttlবাexpireTime) প্রদান করা যেতে পারে। - Away : উপস্থিতি 'away' হিসেবে সেট করতে
MarkAsAwayমেথডটি কল করুন। - বিরক্ত করবেন না : নোটিফিকেশন বন্ধ করতে
MarkAsDoNotDisturbমেথডটি কল করুন।
ফিল্ডের বিবরণ এবং কোয়েরি টেমপ্লেট সহ বিস্তারিত তথ্যের জন্য, প্রতিটি মেথডের রেফারেন্স গাইড দেখুন।
একটি ইভেন্ট থেকে প্রাপ্যতা পরিবর্তন শনাক্ত করুন
কোনো ব্যবহারকারীর প্রাপ্যতা পরিবর্তিত হলে বিজ্ঞপ্তি পেতে আপনার চ্যাট অ্যাপ google.workspace.chat.availability.v1.updated ইভেন্টগুলিতে সাবস্ক্রাইব করতে পারে। যখন প্রাপ্যতা আপডেট হয়, তখন অ্যাপটি Availability রিসোর্স সম্বলিত একটি পেলোডসহ একটি ইভেন্ট গ্রহণ করে।