Sunday, May 8, 2022

icici bank app iMobile Pay UPI error - Mobile number and profile id doesn't belong to same user

If you are trying to perform UPI transactions using icici bank app iMobile Pay and it does not allow to transfer money using UPI and you get following error

 Mobile number and profile id does not belong to same user

This is the solution for you.

Solution : 1

1. Close the app. Update iMobile Pay from Google Play Store.

Open settings of your mobile and clear only cache of the app iMobile Pay.

2. Now Open the app again and visit option UPI. It should solve the issue.

You can try restarting your mobile too.

If you still get same error by touching any option of UPI like 'Send', 'Pay to Contact', 'Transaction History', 'Collect', 'Scan any QR' etc, Follow solution 2.

Solution : 2

1. Make sure your registered mobile number is active and you are able to send and receive sms.

2. Close the app iMobile Pay. Open settings and clear all data of  the app iMobile Pay App.

3. Open the app iMobile App. Re register yourself on the app by selecting sim of your registered mobile no. (if dual sim).

4. Select your account number from drop down and confirm code of alphabets written at back side of your debit card.

5. Once you are registered successfully, Visit Section BHIM UPI in your app and try to open option 'Send','Pay to Contact', 'Transaction History', 'Collect', 'Scan any QR' etc

Now you should be able to transfer money using UPI

You can try restarting your mobile too.

If you are still facing same issue, write an email to customer care of icici on customer.care@icicibank.com or call them on their customer support number.

.



Thursday, May 5, 2022

Telegram Export Group Members more than 10000

FloodWaitError - A wait of 30 seconds is required / Telegram Export Group Members more than 10000

aggressive=True attribute was used to export group members more than 10 K.

This attribute was used in the following line of code of Telegram export group members python script.

all_participants = client.get_participants(target_group, aggressive=True)
But recently telethon has started giving FloodWait error with this attribute.
If we remove it, or make it false, we can download members but less than 10k.

all_participants = client.get_participants(target_group, aggressive=False)

But Removing the attribute or making it false can export members of a group which has less than 10K members but it gives following error for the groups which have more than 10k members.

TypeError: 'ChannelParticipants' object is not subscriptable
github page of this issue suggests a solution for the error. Upgrade your Telethon package to 1.24.0 using following command.

python3 -m pip install --upgrade https://github.com/LonamiWebs/Telethon/archive/master.zip
but after upgrading telethon some users have started getting this new error.
Traceback (most recent call last):
  File "t1_exportgroup.py", line 1, in <module>
    from telethon.sync import TelegramClient
  File "/home/pavi/virtualenvs/telegram/lib/python3.8/site-packages/telethon/__init__.py", line 4, in <module>
    from ._misc import utils as _  # depends on helpers and _tl
  File "/home/pavi/virtualenvs/telegram/lib/python3.8/site-packages/telethon/_misc/utils.py", line 23, in <module>
    from . import markdown, html
  File "/home/pavi/virtualenvs/telegram/lib/python3.8/site-packages/telethon/_misc/markdown.py", line 8, in <module>
    import markdown_it
ModuleNotFoundError: No module named 'markdown_it'
A solution was also provided for the error. Install following packages.

pip install markdown-it-py~=1.1.0
pip install pyaes~=1.6.1
pip install rsa~=4.7.2
After applying this solution above error is gone but another error is here.
Traceback (most recent call last):
  File "t1_exportgroup.py", line 1, in <module>
    from telethon.sync import TelegramClient
ModuleNotFoundError: No module named 'telethon.sync'

Telethon 2 has removed sync module. If your export script is showing this error, you need to change the script according to the changes suggested in this version 2 migration guide.

Friday, April 15, 2022

Telegram - Import Members into a Channel

There are two conditions to Import / Export members of a telegram channel.

1) You should be an administrator or owner of the channel, then only you will be able to import or export members.

2) If a member has selected ‘My Contacts’ option in ‘who can add you to groups and channels’ then you should be added in his/her contact list only then you can import him/her in the channel.

To import channel members, First Generate api id and api hash in your telegram account. To do this, open my.telegram.org
Login using your registered phone number.
Now Open Link Development Tools and copy your api id and hash
We will use the api id and hash in the Python Script

 Create virtual environment with python 3 and install Telethon using pip.

virtualenv telegram -p /usr/bin/python3
source telegram/bin/activate
pip install Telethon==1.23.0
Update API ID, API hash, telegram registered phone number and channel username(it can be found on the channel description page) in the following python script import.py.

from telethon.sync import TelegramClient
from telethon.tl.functions.messages import GetDialogsRequest
from telethon.tl.types import InputPeerEmpty, InputPeerChannel, InputPeerUser
from telethon.errors.rpcerrorlist import PeerFloodError, UserPrivacyRestrictedError
from telethon.tl.functions.channels import InviteToChannelRequest
import sys
import csv
import traceback
import time

api_id = 9999999
api_hash = 'zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz'

client = TelegramClient('session_name', api_id, api_hash)
client.start()

channel = client.get_entity('pythonlovers07')
print(channel)

input_file = 'members.csv'
users = []
with open(input_file, encoding='UTF-8') as f:
    rows = csv.reader(f,delimiter=",",lineterminator="\n")
    next(rows, None)
    for row in rows:
        user = {}
        user['username'] = row[0]
        user['id'] = int(row[1])
        user['access_hash'] = int(row[2])
        user['name'] = row[3]
        users.append(user)
        
 
mode = int(input("Enter 1 to add by username or 2 to add by ID: "))

for user in users:
    try:
        print ("Adding {}".format(user['id']))
        if mode == 1:
            if user['username'] == "":
                continue
            user_to_add = client.get_input_entity(user['username'])
            print(user['username'])
        elif mode == 2:
            user_to_add = InputPeerUser(user['id'], user['access_hash'])
        else:
            sys.exit("Invalid Mode Selected. Please Try Again.")
        target_group = 'pythonlovers07'
        target_group_entity = InputPeerChannel(channel.id,channel.access_hash)
        print(target_group_entity)
        print(user_to_add)               
        client(InviteToChannelRequest(target_group_entity,[user_to_add]))
        print("Waiting 60 Seconds...")
        time.sleep(60)
    except PeerFloodError:
        print("Getting Flood Error from telegram. Script is stopping now. Please try again after some time.")
    except UserPrivacyRestrictedError:
        print("The user's privacy settings do not allow you to do this. Skipping.")
    except:
        traceback.print_exc()
        print("Unexpected Error")
        continue
Run the Python script in the same virtual env.

python import.py

members.csv should be in same directory where you are running the script. members.csv has all the exported channel members. 

It will list all your channels. Choose number of the channel into you want to import members. Members will be imported in the channel.

To see the steps :

 



If you want to export telegram channel members, check other post of the blog.

https://linuxamination.blogspot.com/2022/04/telegram-export-members-of-channel.html